CLRS 7.2快速排序的性能

来源:互联网 发布:淘宝卖家在闲鱼卖东西 编辑:程序博客网 时间:2024/06/09 15:17

7.2-1
这里只证明上界,下界可类似证明。
猜测 T(n)cn2

T(n)=T(n1)+dnc(n1)2+dn=cn22cn+c+dn=cn2+(d2c)n+ccn2(2c>d,nc/(2cd))

综合上下界有T(n)=Θ(n2)

7.2-2
由于每次都返回 r,因此划分十分不平衡,时间复杂度为Θ(n2)

7.2-3
类似7.2-2,每次划分十分不平衡,时间复杂度为Θ(n2)

7.2-4
显然,排序越好,对插入排序也好,对快排越差,原理类似于7.2-2和7.2-3,所以INSERT_SORT性能往往比QUICKSORT好。

7.2-5
每次迭代元素个数都从 n 变为 αn。迭代 i 次过后变为 αin。当到达叶子结点是就只有一个元素,设深度为 h,则αhn=1h=logα1n=log1/αn=lgnlg(1/α)=lgnlgα
同理得到最大深度log1/(1α)n=lgnlg(1α)

7.2-6
要产生一个比 1α:α 更好的划分,选择 pivot 时要么划分比 αn 更多的元素,要么划分比 (1α)n 更少的元素。即 αn<x<(1α)n,此概率为 (1α)nαnn=12α

0 0
原创粉丝点击