快排第n趟排序结果校验

本文探讨了快速排序算法中第n趟排序结束后,至少有n个元素排在正确位置上的性质。通过举例分析,展示了如何验证某个序列是否可能是快速排序某一趟后的结果,并说明了逆向构造快速排序过程的可能性。
摘要由CSDN通过智能技术生成

快排第n趟排序结果校验

@(算法学习)

(2014.11)下列选项中,不可能是快速排序第二趟排序结果的是:

A. 2,3,5,4,6,7,9
B. 2,7,5,6,4,3,9
C. 3,2,5,4,7,6,9
D. 4,2,3,5,7,6,9

分析:只需要掌握一点就可以解出这个问题:每趟排序就有一个元素排在了最终的位置上。那么就是说,第n趟结束,至少有n个元素已经排在了最终的位置上。

所以我们把最终排序结果写出来:

2,3,4,5,6,7,9去与每一项做比较即可快速判断。

比如A:
2,3,4,5,6,7,9
2,3,5,4,6,7,9
有五个都已经满足了,则肯定可以是2趟快排的结果。

B:
2,3,4,5,6,7,9
2,7,5,6,4,3,9
有两个,则满足。

C:
2,3,4,5,6,7,9
3,2,5,4,7,6,9
只有一个,不满足。

D:
2,3,4,5,6,7,9
4,2,3,5,7,6,9
有两个满足。

反之,找到两个就可以死反向构造符合条件的快排。比如我们以D为例,且以严版算法为准,每次Partion时用第一个为pivot。

4,2,3,5,7,6,9
假设

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值