【算法模板】 快速排序

122 阅读1分钟

# 快速排序

void QuickSort(int nums[], int left, int right)
{   
    
    if (left >= right) {
        return;
    }
    int l = left - 1;
    int r = right + 1;
    int midVal = nums[left + right >> 1];
    while (l < r) {
        do l++; while (nums[l] < midVal);
        do r--; while (nums[r] > midVal);
        if (l < r) {
            Swap(nums, l, r);
        }
    }
    QuickSort(nums, left, r);
    QuickSort(nums, r + 1, right);
}