题目1:写一个函数,打印二叉树中某层次的节点(从左到右),其中根节点为第0层。
思路:利用递归算法,思想是:要求访问二叉树中第k层的节点,那么其实就是要访问“以该二叉树根节点的左右子节点为根节点的两颗子树”中层次为k-1的节点
代码:
struct pNode {
int data;
pNode *lChild;
pNode *rChild;
};
int ...
分类:
其他好文 时间:
2015-05-07 14:40:05
阅读次数:
146
二分算法由于其复杂度为O(logN),在实际运算中具有极高的效率。二分算法思想还经常结合其它算法被应用在解决实际项目问题中。例如,对非线性方程求根。二分算法的思想简单,但编写正确却并不容易。编写二分算法的错误,往往不是因为疏忽错误,而是因为该算法过于灵活却暗藏杀机。轻则程序崩溃,机器停止;重则可能引起致命的损失。下面先给出错误程序,及样例分析。错误1:int bsearch(int *a, int...
分类:
编程语言 时间:
2015-05-06 13:17:56
阅读次数:
148
1 算法思想 给出要筛数值的范围n,找出以内的素数。先用2去筛,即把2留下,把2的倍数剔除掉;再用下一个素数,也就是3筛,把3留下,把3的倍数剔除掉;接下去用下一个素数5筛,把5留下,把5的倍数剔除掉;不断重复下去......。2 Python实现 1 from math import sqrt ....
分类:
其他好文 时间:
2015-05-06 13:03:40
阅读次数:
107
1. 括号匹配的四种可能性:①左右括号配对次序不对②右括号多于左括号③左括号多于右括号④左右括号匹配正确2. 算法思想:1.顺序扫描算数表达式(表现为一个字符串),当遇到三种类型的左括号时候让该括号进栈;2.当扫描到某一种类型的右括号时,比較当前栈顶元素是否与之匹配,若匹配,退栈继续推断;3.若当前...
分类:
其他好文 时间:
2015-05-05 23:28:48
阅读次数:
114
主要内容:1、算法思想2、快速排序算法3、划分算法partition4、快排过程图解5、完整代码1、算法思想快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。(1) 分治法的基本思想 分....
分类:
编程语言 时间:
2015-05-05 12:08:27
阅读次数:
162
算法思想:通过设置一个岗哨,每次跟这个岗哨进行比较,比他小的放在左边,比他大的放在右边。再对岗哨左边的数组0----middle-1,和middle+1-----end,进行同样的排序。算法复杂度:快速排序时间复杂度为O(nlogn),由于是在原数组上面利用替换来实现,因此不需要额外的存储空间。核心...
分类:
编程语言 时间:
2015-05-04 22:02:04
阅读次数:
152
题目:实现一个函数,查找一个整数数组中第二大数。算法思想:设置两个变量max1和max2,用来保存最大数和第二大数,然后将数组剩余的数依次与这两个数比较,如果这个数a比max1大,则先将max1赋给max2,使原先最大的数成为第二大的数,再将这个数a赋给max1,如果这个数a比max1小但比max2...
分类:
编程语言 时间:
2015-05-03 14:32:11
阅读次数:
152
朴素贝叶斯:有以下几个地方需要注意:1. 如果给出的特征向量长度可能不同,这是需要归一化为通长度的向量(这里以文本分类为例),比如说是句子单词的话,则长度为整个词汇量的长度,对应位置是该单词出现的次数。2. 计算公式如下:其中一项条件概率可以通过朴素贝叶斯条件独立展开。要注意一点就是的计算方法,而由...
分类:
编程语言 时间:
2015-05-03 11:52:54
阅读次数:
248
今天就先介绍LRU和LFU这两个在Android的Framework以及App中比较常用的缓存算法的思想原理,其实这些缓存算法的原理思想和Linux中的虚拟内存页面置换算法思想是一致的,只不过具体的不同。...
分类:
编程语言 时间:
2015-05-01 22:36:03
阅读次数:
181
http://dsqiu.iteye.com/blog/1700312BF(Brute Force)算法1.思想2.编程实现暴力算法,又称朴素算法,是最基本的字符串搜索算法,当然也是效率最低的算法.3.时间复杂度时间复杂度为O(m*n) //m与n分别为2个字符串的长度4.补充资料KMP(Knuth...
分类:
编程语言 时间:
2015-05-01 19:54:53
阅读次数:
262