#include <stdio.h>
//pt用于打印一个数组
void pt(int *r,int ini,int end){
int i;
for(i=ini;i<=end;i++){
printf("%d ",r[i]);
}
printf("\n");
}
//swap用于交换a和b的值
void swap(int *a,int *b){
int temp;
temp=*a;
*a=*b;
*b=temp;
}
//qsort快速排序
void qsort(int *r,int ini,int end){
if (end>ini){
int s=ini;
int line=r[end];
int i;
for (i=ini;i<end;i++){
if (r[i]<line){
swap(&r[i],&r[s]);
s++;
}
}
swap(&r[i],&r[s]);
qsort(r,ini,s-1);
qsort(r,s+1,end);
}
}
//测试
int main(){
int r[10]={5,7,1,4,3,9,8,6,0,2};
qsort(r,0,9);
pt(r,0,9);
return 0;
}
C原地快速排序
最新推荐文章于 2024-03-27 17:17:41 发布