推广 热搜: 百度  搜索引擎  企业  可以  选择  使用  page  机械设备  参数  公积金 

快速排序详解——多种实现方式

   日期:2024-12-24     作者:3ijyn    caijiyuan  
核心提示:任取待排序元素序列中的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准

任取待排序元素序列中的某元素作为基准值,按照该排序码将待排序集合分割成两子序列,左子序列中所有元素均小于基准值,右子序列中所有元素均大于基准值,然后最左右子序列重复该过程,直到所有元素都排列在相应位置上为止。

hoare版本实现快排的方式为:如果假定key基准值为最左边,然后应该从右边开始向左查看,遇到大于基准值key的right—,反之停在这个位置,再让左手left开始找大于key的元素,遇到之后也停止,最后两者交换,完成这一趟循环之后(left和right两者相遇)key是大于相遇位置的元素的最后交换着这两个元素,将相遇位置下表赋值给key,再递归

 

如果说对于有序数组,实际上key基准值再从最左边或者最右边开始,会导致key永远在最左边或者右边,实际上是和冒泡排序差不多,所以这个时候,就是最坏的情况,时间复杂度为O(n2)

快速排序详解——多种实现方式

第一种随机值法

 

第二种三数取中方法

 
 

挖坑法,先设定key基准值,形成一个坑位(设定一个变量hole表示坑)然后从右开始找到小于key的数值,然后将这个数值放在坑里,然后赋值hole这个位置,表示新的坑,再左边开始找到大于key的位置,再次放在hole里,继而hole更新为这个左边的位置

 
 

 
 

本文地址:http://ww.kub2b.com/tnews/271.html     企库往 http://ww.kub2b.com/ ,  查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。

 
 
更多>同类生活信息

文章列表
相关文章
最新动态
推荐图文
生活信息
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号