//快速排序算法 #include<iostream.h> void sort(int start,int end,int *a) { if (start>=end) return; int low=start; int high=end; int x=a[start]; int flag=0; while (low!=high) { if (flag==0)//左边空,从右向左找比x小的值 { for(int j=high;j>=low;j--) { if (a[j]<x) { a[low]=a[j]; flag=1; high=j; break; } else { if(j==low) high=low; } } } else//右为空,从左向右找比x大的值 { for (int j=low;j<=high;j++) { if (a[j]>x)//找到更改查找范围 { a[high]=a[j]; low=j; flag=0; break; } else { if(j==high) low=high;//不存在,更改查找范围 } } } } a[low]=x; sort(start,low-1,a); sort(low+1,end,a); } void main() { int a[]={8,7,6,5,4,3,2,1}; sort(0,7,a); for (int i=0;i<8;i++) { cout<<a[i]<<endl; } }