您的位置:首页 > 其它

算法导论课后习题解析 第七章

2016-01-09 22:21 190 查看


算法导论课后习题解析 第七章

7.1-1
蓝色部分代表不大于pivot,红色部分表示大于pivot
13 19 9 5 12 8 7 4 21 2 6 11

13 19 9 5 12 8 7 4 21 2 6 11
13 19 9 5 12 8 7 4 21 2 6 11
9 13 19 5 12 8 7 4 21 2 6 11
9 5 13 19 12 8 7 4 21 2 6 11
9 5 13 19 12 8 7 4 21 2 6 11
9 5 8 13 19 12 7 4 21 2 6 11
9 5 8 7 13 19 12 4 21 2 6 11
9 5 8 7 4 13 19 12 21 2 6 11
9 5 8 7 4 13 19 12 21 2 6 11
9 5 8 7 4 2 13 19 12 21 6 11
9 5 8 7 4 2 6 13 19 12 21 11
9 5 8 7 4 2 6 11 13 19 12 21

7.1-2
当所有的元素都相同的时候q=r,这是因为该算法结束后有aq<ai, (q<i≤r)aq<ai, (q<i≤r),所以没有任何元素会在A[q]之后。
将算法变成交替地将等于pivot的元素放到大小两个集合中,这样就能使得q=⌊(p+r)/2⌋q=⌊(p+r)/2⌋。

7.1-3
由于j从p变为r-1,而循环内的操作运行时间都与输入规模无关为O(1),循环共进行r-p次,所以总的时间复杂度为O(r-p)=O(n)。

7.1-4
只要把比pivot小的元素放到后边,把比pivot大的元素放在前边即可。

待续。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: