十分钟记住快速排序(快速排序快速记忆方法)
Posted alice-fourier
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了十分钟记住快速排序(快速排序快速记忆方法)相关的知识,希望对你有一定的参考价值。
快速排序很简单,分为三步:
1.找中轴
2.左边快排
3.右边快排
注意事项:每一次快排之前都要判断左边的下标是否小于右边的下标
代码如下:
void quick_sort(int * data,int left,int right)
{
if(left < right)
{
int index = partition(data,left,right);
quick_sort(data,left,index-1);
quick_sort(data,index+1,right);
}
}
找中轴也分为三步:
1.选定一个中轴(以最左边的中轴为例)
2.从右往左找,右边赋值给左边
3.从左往右找,左边赋值给右边
代码如下:
int partition(int * data,int left,int right)
{
int piovet = data[left];
while(left < right)
{
while(data[right] >= piovet && left < right) right--;
data[left] = data[right];
while(data[left] <= piovet && left <right) left++;
data[right] = data[left];
}
data[left] = piovet;
return left;
}
以上是关于十分钟记住快速排序(快速排序快速记忆方法)的主要内容,如果未能解决你的问题,请参考以下文章