随机快速排序
//srand((unsigned)time(NULL))
int p=(int)(round(0.1*rand()/RAND_MAX*(r-l)+l));
swap(a[p],a[l]);
temp=a[l];
while(l<r){
while(l<r&&temp<a[r]) r--;
a[l]=a[r];
while(l<r&&temp>=a[l]) l++;
a[r]=a[l];
}
a[l]=temp;
return l;
}
void quicksort(int* a,int l,int r){ //快速排序的递归实现
if(l<r){
int p=randPartition(a,l,r);
quicksort(a,l,p-1);
quicksort(a,p+1,r);
}
}