快速排序
来源:互联网 发布:西安软件新城二期商铺 编辑:程序博客网 时间:2024/05/18 02:14
int partition(int a[],int start,int end){ int x=a[start]; int i=start,j=end,t; while(i<j) { while(a[i]<=x&&i<=j) i++; while(a[j]>x&&j>i) j--; if(i<j) t=a[i],a[i]=a[j],a[j]=t; } a[start]=a[i-1]; a[i-1]=x; return i-1;}void quick_sort(int a[],int start,int end){ int m; if(start<end) { m=partition(a,start,end); quick_sort(a,start,m-1); quick_sort(a,m+1,end); }}
//只有一个函数
void quick_sort(int a[],int start,int end){ if(start<end) { int x=a[start]; int i=start,j=end,t; while(i<j) { while(a[i]<=x&&i<=j) i++; while(a[j]>x&&j>i) j--; if(i<j) t=a[i],a[i]=a[j],a[j]=t; } a[start]=a[i-1]; a[i-1]=x; int m=i-1; quick_sort(a,start,m-1); quick_sort(a,m+1,end); }}