废话不多说,上代码:
void quicksort(int x[], int lo, int hi){ int i = lo, j = hi;
int pivot = x[(lo + hi) >> ]; while(i <= j){
while(x[i] < pivot) i++;
while(x[j] > pivot) j--; if(i <= j){
swap(x[i], x[j]);
i++;
j--;
} } if(lo < j) quicksort(lo, j);
if(i < hi) quicksort(i, hi); }
注意学会这个partition algorithm,随便选一个值当做pivot,然后两个指针分别指向两头,往中间挤。
Reference: here