快速排序——hoare版本+挖坑法

一.hoare法       
快排的基本思想是将数组中选出来的key值,通过左右数值比较大小的方式,把该key值调至它应该在数组中的位置(以升序为例)
        实现hoare版本的快排,需要先实现快排的单趟排序,单趟排序的目标是实现左边的值比key要小,右边的值比key要大。快排的结构图如下所示:

单趟快速排序代码如下所示:
// 快速排序hoare版本
int PartSort1(int* a, int left, int right)
{
int keyi = left;
while (right > left)
{
//右边,找小
while (right > left && a[right] >= a[keyi])//此处大于等于是为了防止数组里的数据相同的时候,进入死循环
{
right--;
}
//左边,找大
while (right > left && a[left] <= a[keyi])//此处right > left是为了防止数组越界
{
l

快速排序——hoare版本+挖坑法最先出现在Python成神之路

版权声明:
作者:Mr李
链接:https://www.techfm.club/p/26587.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>