08 2011 档案
摘要:Notes前面的排序都是基于比较排序,有时候不需要比较也可以排序。关键是那些东西有一个好的表示,比如说整数。用decision tree证明,\(\Omega(n \lg n)\)是所有比较排序算法的下界。决策树中间节点表示比较的两个东西,叶子节点表示元素的一个置换,决策树的每条边表示这个算法在这个节点获得的比较信息。每个置换至少出现一次,叶子的数目是n!个。不同算法有不同的决策树。比如最笨的最小值排序。它最短的path是这样的:1跟2~n比较的node –> 2跟3~n比较的node –> 。。。。而快排最短的path是,pivot和其他全部比较的n-1个node –> 中
阅读全文
摘要:做题要猜出题目的意图。 7.1-1 略 7.1-2 r-1, add if q=r-1, then $q = \lfloor (p+r)/2 \rfloor$。这说明元素全都一样的时候,quicksort伤不起。worst-case了,要$\Theta(n^2)$了。快排弱点1. 7.1-3 pivot要比较所有的数组元素,自然是n 7.1-4 PARTITION中Line4的<= changed...
阅读全文
摘要:看CLRS一般把笔记写在书的margin里。Cormen的提纲也是蛮好的,适合复习。这里用的Partition方法是Lomuto Partition,不是原始的也是第1版中的Hoare Partition。后者被留作习题。快排Quicksort的时间复杂度worst-case是\Theta(n^2), 期望时间是\Theta(nlgn), 复杂度前面的常数很小,sort in place。 Des...
阅读全文
摘要:Exercises 6.1-1 2^h~2^{h+1}-1,如果root是第1个,而不是第0个。 6.1-2 设heap高度为h,2^h<=n<=2^{h+1}-1,取对数得到\floor{lgn} 6.1-3 传递性, Cormen用的是反证法 6.1-4 因为smallest element在heap中没有children,所以只能在leaf 6.1-5 YES. 在已排序的数组里A[i]的...
阅读全文
摘要:It was the best of times, it was the worst of times. This is my third time reading CLRS, and I never finished it. I hope I can put an end on it this time. I think this project will last one year to co...
阅读全文
浙公网安备 33010602011771号