算法导论
beyond6987
这个作者很懒,什么都没留下…
展开
-
算法导论——三、四章
第三章:函数的增长主要区分几个记号: f(n)=θ(g(n)):存在a,b,使得0= n0) O:只有渐进上界时 Ω:只有渐进下界 o:区别于O,表示渐进非紧确 eg: lg n = o( n ),换成O则不成立 ω:同上第四章:递归式三种方法:代换法:原创 2012-12-31 09:46:17 · 185 阅读 · 0 评论 -
算法导论——六、七章
第六章:堆排序堆数据结构其实就是完全二叉树,可以用线性数组表示,但该数组A需要有两个属性:length[A] heap-size[A],分别表示A元素个数,以及堆中元素个数。求亲戚节点号:父亲是 └ i/2 ┘ 左儿子:2*i 右儿子 2*i +1最大堆、最小堆则分别表示父亲是大还是小堆排序:首先建立最大堆,然后根节点(有最大值)与末尾节点交换,然后将堆的大小减一,调整堆,再原创 2013-01-01 11:17:27 · 166 阅读 · 0 评论 -
算法导论——十二章
十二章:二叉查找树一般来说操作时间跟高度成正比 O(lg n)性质:对于任何节点x,其左子树关键字最大不超过key[x],右子树关键字最小不小于key[x]遍历;INORDER-TREE-WALK(x){ if(x != nil) INORDER-TREE-WALK(left[x]); print(x); INORDER-TR原创 2013-01-04 13:05:36 · 237 阅读 · 0 评论 -
算法导论——十、十一章
第十章:基本数据结构,讲解了栈与队列栈:先进先出数据结构 top[S]指向最近插入的元素STACK-EMPTY(S){ if (top[S] == 0)return true; else return false;}PUSH(S,x){ top[S] ++; S[ top [S] ] = x;}POP(S){原创 2013-01-04 11:05:30 · 226 阅读 · 0 评论 -
算法导论——一、二章
第一章主要介绍什么是算法,提到效率问题。第二章:算法入门1.首先讲了排序的一种:插入排序,顾名思义。他是原地排序。INSERTION-SORT(A)for (j = 2; j key = a[j];i = j - 1;while(i >0 && a[i] > key){a[i +1] = a[i];i--;}a[i+1] = key;}利用循环不原创 2012-12-29 21:34:35 · 177 阅读 · 0 评论 -
算法导论——八、九章
第八章:线性时间排序比较排序的时间下界是:O(n lg n)因此该章讲述的都不是基于比较的排序记数排序:假设n 个输入元素介于0-k之间COUNTING-SORT(A,B,k) //存放于B中{ for (i = 0 ; i for (i = 1; i for (i = 1; i for( i =1; j B[ C[ A[i原创 2013-01-03 11:03:51 · 177 阅读 · 0 评论