int part(int p[], int i,int j) { int key=p[i]; while(i<j) { while(i<j&&p[j]>=key) j--; if(i<j) p[i]=p[j]; i++; while(i<j&&p[i]<=key) i++; if(i<j) p[j]=p[i]; j--; } p[i]=key; return i; } void qsort(int p[],int i,int j) { if(i<j) { int div=part(p,i,j); qsort(p,i,div-1); qsort(p,div+1,j); } }
参考:http://www.cnblogs.com/morewindows/archive/2011/08/13/2137415.html