《算法导论》笔记 第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<=q<=n-1,所以x=0或x=n-1时,y取得最大值,即q^2+(n-q-1)^2取得最大值。


7.4-4 证明:RANDOMIZED-QUICKSORT 算法的期望运行时间是Ω(nlgn)。

随机化还没看=。=


7.4-5 当在一个长度小于k的子数组上调用快速排序时,让他不做任何排序就返回。当顶层的快速排序调用返回后,对整个数组运行插入排序来完成排序过程。证明这一排序算法的期望运行时间为O(nk+nlg(n/k))。在理论上和实践中,应如何选择k。

算法的时间由快速排序与插入排序两部分组成。

对于快速排序,递归树由logn变为logn-logk因此复杂度为O(nlog(n/k))。

对于插入排序,设快速排序将数组分为m份,每份Ki个元素,Ki<=k,∑Ki=n。

O(∑Ki*Ki) <= O(∑Ki*k) = O(k*∑Ki) = O(n*k)。

因此期望运行时间为O(nk+nlg(n/k))。

k的值理论在logn附近,实验中在非理论值附近选择k也可能最优。


*7.4-6 考虑对PARTITION过程做这样的修改:从数组A中随机的选择出三个元素,并围绕这三个数的中数对它们进行划分。求出以α的函数形式表示的、最坏情况中α:(1-α)划分的近似概率。

*


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值