int partition(int a[],int l,int h){
int privo = a[l];
while(l<h){
while(l<h&&a[h]>=privo)--h;
a[l]=a[h];
while(l<h&&a[l]<=privo)++l;
a[h]=a[l];
}
a[l]=privo;
return l;
}
void qsort(int a[],int l,int h){
if(l<h){
int loc = partition(a,l,h);
qsort(a,l,loc-1);
qsort(a,loc+1,h);
}
}
int privo = a[l];
while(l<h){
while(l<h&&a[h]>=privo)--h;
a[l]=a[h];
while(l<h&&a[l]<=privo)++l;
a[h]=a[l];
}
a[l]=privo;
return l;
}
void qsort(int a[],int l,int h){
if(l<h){
int loc = partition(a,l,h);
qsort(a,l,loc-1);
qsort(a,loc+1,h);
}
}
本文详细介绍了快速排序算法的实现原理及过程。通过递归的方式选取基准元素,并将数组分为两个子序列,分别进行排序,最终达到整个数组有序的状态。具体包括分区函数的实现,递归调用的过程等。
1826

被折叠的 条评论
为什么被折叠?



