2014年4月8日

《算法导论》笔记 第7章 总结与思考

摘要: 【思考题】7-1 Hoare 划分的正确性a) 说明 HOARE-PARTITION 算法在数组 A = 上的运行过程,并说明在第 4~11 行中 while 循环的每一轮迭代后,数组中各元素的之和辅助值的情况。p=1, r=12[i=0] 13 19 9 5 12 8 7 4 11 2 6 21 [j=13]6 [i=1] 19 9 5 12 8 7 4 11 2 [j=11] 13 216 2 [i=2] 9 5 12 8 7 4 11 [j=10] 19 13 21i=10, j=9return j = 9b) 下标i和j满足这样的特点,即我们从不会访问数组A的、在子数组A[p..r]. 阅读全文

posted @ 2014-04-08 19:51 电子幼体 阅读(344) 评论(0) 推荐(0) 编辑

《算法导论》笔记 第7章 7.4快速排序分析

摘要: 【笔记】利用RANDOMIZED-PARTITION,快速排序算法期望的运行时间当元素值不同时,为O(nlgn)。【练习】7.4-1 证明:在递归式:中,T(n)=Ω(n^2)。采用代换法。猜测 T(n) <= c*n^2,c为某个常数。选择足够大的c,使得 c*(2*n-1)可以支配Θ(n), T(n) <= c*n^2成立。7.4-2 证明:快速排序的最佳情况运行时间为Ω(nlgn)。7.4-3 证明:在q=0,1,...,n-1区间上,当q=0或q=n-1时,q^2+(n-q-1)^2取得最大值。令x=q一元二次函数,开口向上,x=(n-1)/2 为对称轴。因为 0<= 阅读全文

posted @ 2014-04-08 15:54 电子幼体 阅读(475) 评论(0) 推荐(0) 编辑

《算法导论》笔记 第7章 7.3快速排序的随机化版本

摘要: 【笔记】新的排序调用RANDOMIZED-PARTITION。int randomizedPartition(int A[],int p,int r) { int i = rand() % (r-p+1) + p; swap(A[r],A[i]); return partition(A,p,r);}【练习】7.3-1 我们为什么要分析一个随机化算法的平均情况性能,而不是其最坏情况性能呢?随机化算法下输入较为平均,最坏情况极难出现。7.3-2 在过程RANDOMIZED-QUICKSORT的运行过程中,最坏情况下对随机数产生器RANDOM调用了多少次?最佳情况下调用了多少次?以... 阅读全文

posted @ 2014-04-08 09:40 电子幼体 阅读(370) 评论(0) 推荐(0) 编辑

导航