快速排列的基本思想是利用递归函数,将数组分成以所选基数为中位数的大小两部分,并重复排列左右两部分直至子数列只有一个数或全相等。
代码如下:
int sort(int a[],int low,int max)
{
int k,i,j;
if(low>=max) return 1;//结束条件
k=a[low];i=low;j=max;//选择最左位a[low]做基数k
while(i<j)
{
while(a[j]>=k&&i<j)//从右侧开始,找到小于k的数放在多余的数的位置上
j--;
a[i]=a[j];
while(a[i]<k&&i<j)
i++;
a[j]=a[i];
}
a[i]=k;
sort(a,low,i-1);
sort(a,i+1,max);
}