讨论/综合讨论/执行时间和空间都超过100%的紧凑快排算法/
执行时间和空间都超过100%的紧凑快排算法
  1. 排序数组

大家分析分析这个快速排序算法怎么做到的,代码写的特别紧凑,执行时间最快24ms,内存17.6M。都超过100%提交

感觉有点难理解,谁能解释一下?

void quickSort(vector<int>& nums, int l, int r) {
    if (l >= r) return;
    int t = l;
    for (int i = l; i < r; ++i) {
        if (nums[i] < nums[r]) {
            swap(nums[t++], nums[i]);
        }
    }
    swap(nums[t], nums[r]);
    quickSort(nums, l, t - 1);
    quickSort(nums, t + 1, r);
}
展开讨论
code047发起于 2020-01-15
最近编辑于 2020-01-15

找个小的数组自己模拟模拟就理解了。

l和r表示截取子数组排序的范围,
开头的nums[r]最后放到nums[t]上,比nums[t]小的放左边,比nums[t]大的右边。
最后左右的子数组排序。

2
展开全部 5 讨论