快速排序
对一个下标在 间的数组 排序。
一般可以这么调用:ksort(a,1,n),把 排好序。
void ksort(int *a,int l,int r){
int i=l,j=r,f=a[(l+r)/2];
do{
while(a[i]<f)
i++;
while(a[j]>f)
j--;
if(i<=j)
swap(a[i++],a[j--]);
}while(i<=j);
if(l<j)
ksort(a,l,j);
if(i<r)
ksort(a,i,r);
}
平均时间复杂度 。

浙公网安备 33010602011771号