快排
void quicksort(int *a, int n, int l, int r) { int lb,ub,key; lb = l; ub = r; key = a[lb]; while(lb < ub) { while(lb < ub && a[ub] > key) {ub --;} if(lb < ub) { a[lb] = a[ub]; lb ++; } while(lb < ub && a[lb] < key) {lb ++;} if(lb < ub) { a[ub] = a[lb]; ub--;} } a[lb] = key; if(lb - l > 0) quicksort(a, lb, l, lb-1); if(r - ub > 0) quicksort(a, n-1-lb, lb+1, r); }
希望下次贴贴的划分代码是自己写的。。

浙公网安备 33010602011771号