快速排序(quick sort)

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);  
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章