快速排序

void quicksort(int arr[], const int BEGIN, const int END)
{
    if (BEGIN >= END)
    {
        return;
    }

    int i = BEGIN + 1;
    int j = END;

    while(i < j)
    {
        if (arr[i] > arr[BEGIN])
        {
            swap(&arr[i], &arr[j]);
            j--;
        }
        else
        {
            i++;
        }
    }
    //cout << i << " " << j << endl;
    if (arr[i] >= arr[BEGIN])
    {
        i--;
    }
    swap(&arr[i], &arr[BEGIN]);

    quicksort(arr, BEGIN, i);
    quicksort(arr, j, END);

}

 

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