快速排序
中心思想特别简单
定义左边的的第一个数为基准数,就是从右往左找比基准数大的,从左往右找比基准数小的。找到后替换。然后基准数归位;
代码分段解释
#变量定义及准备工作
int i,j,t,temp;
if(left>right)
return;
i=left;
j=right;
temp=a[i];
##开始寻找并交换
while(i!=j)
{
while(a[j]>=temp&&i<j)
j--;
while(a[i]<=temp&&i<j)
i++;
if(i<j)
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
###基准数归位
a[left]=a[i];
a[i]=temp;
###递归
quicksort(left,i-1);
quicksort(i+1,right);