《算法导论:快速排序》:这种很优秀,代码简单,效率高,并且划分标准.

 

这个快速排序,维护了四段区间,一个是p...i 这一段区间, 它们均小于等于A[r] ,一段是i+1...j-1, 这一段均大于A[r], 还有一段是未分类的元素,范围是j.....r-1,最终是r, A[r]是划分关键字.

 

0(n)时间可以完成划分,循环结束后,将关键字与第一个大于A[r]的元素互换,这样就满足p...i+1均小于等于A[r],i+2....r均大于A[r].

 

这种实现方法代码间断,不易出错,而且partition()可以单独用于数组的划分,左边的元素一定是小于等于关键字的,右边的元素一定是大于关键字的, 对于找第K大元素等算法思想是强大支持. 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值