void quick_sort(int* array, int l){
if(l == 1) return;
int head = 1;
int tail = l-1;
int middle = 0;
while(head < tail){
while(array[tail] >= array[middle] && head < tail) tail--;
while(array[head] <= array[middle] && head < tail) head++;
int temp = array[tail];
array[tail] = array[head];
array[head] = temp;
}
if(array[head] > array[middle]) head--;
int temp = array[middle];
array[middle] = array[head];
array[head] = temp;
middle = head;
if(middle > 0) quick_sort(array, middle);
if(l-1 > middle) quick_sort(array + middle + 1, l - middle - 1);
}
快速排序(quick sort)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.