算法导论第七章练习参考答案(12) - 7.1 - 7.4

本文讨论了快速排序中的PARTITION算法,涉及其在不同情况下的性能优化,包括相同值处理、非递增排序、已排序数组及随机化的影响。文章还分析了快速排序的期望运行时间和最坏情况下的优化策略。

PARTITION代码

第7.1节

Exercise 7.1-1

 Exercise 7.1-2

如果数组中所有元素的值相同,则PARTITION返回r。为了使PARTITION在所有元素的值相同时返回q=\left \lfloor (p+r)/2 \right \rfloor,修改算法第4行如下:如果A[j]≤x且j(mod2) = (p + 1)(mod2)。这导致算法将相同值的一半实例算作小于,另一半算作大于。 

 Exercise 7.1-3

for循环精确地进行r - p次迭代,每次迭代最多占用常数时间。for循环之外的部分最多占用常数时间。由于r−p是子数组的大小,因此PARTITION所花费的时间最多与调用它的子数组的大小成正比。 

Exercise 7.1-4 

要修改QUICKSORT以非递增顺序运行,我们只需要修改PARTITION的第4行,将≤改为≥。


第7.2节

 Exercise 7.2-1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值