快速排序学习优化
首先,上图。
‘’’
```cpp
int partSort(int *a ,int left,int right)
{
int keyi = left; //做左侧基准
while(left<right)
{
while(left<right && a[right]>=a[keyi])
{
right--;
}
while(left<right && a[left]<=a[keyi])
{
++left;
}
swap(a[left],a[right]);
}
//找到基准的位置
swap(&a[left],&a[right]);
//返回基准的位置方便以后用
return left;
}
//递归
void QuickSort(int* a,int left,int right)
{
if(left<right)
{
int pivot = partSort(a,left,right);
QuickSort(a,left,pivot-1);
QuickSort(a,pivot+1,right);
}
}
原文地址:https://blog.csdn.net/wedream23/article/details/144736689
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!