推广 热搜:   公司  快速  中国  企业    行业  设备  上海  未来 

【数据结构】快速排序(4种方式实现)

   日期:2025-01-02     移动:http://keair.bhha.com.cn/mobile/quote/6026.html

前言:前面我们学习了几种相对比较简单的排序,今天我们要一起学习的是快速排序,我们将通过四种方式来模拟实现快排。


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

hoare思想

1.首先我们选定一个基准值,通常是数组中的第一个元素。
2. 定义俩个指针,一个left一个right分别在数组的最左边和最右边。
3. 我们让右指针先走,如果比我们定义的基准值小就停下来。
4. 右指针走完我们在让左指针走,如果比我们定义的基准值小也停下来。
5. 在俩个指针都停下来的时候把它们的值进行交换,以此反复循环直到俩个指针相遇,我们把基准值和它们的值进行交换。
6. 最终这一趟下来我们会得到如下图一样的数据,基准值左边的都比基准值小,右边的都比基准值大。
7. 我们把这一趟走完后在重新分为左右俩个部分的数据,在用此方法以此往复即可实现一个有序数组。


代码实现:

 

测试函数:

 
 
 

测试函数:

 
 

双指针思想

 

函数测试

 
 

非递归思想

 

测试函数:

 
 

本文地址:http://keair.bhha.com.cn/quote/6026.html    康宝晨 http://keair.bhha.com.cn/ , 查看更多

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


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