归并和冒泡结果必须一样

把 msort 和 bubble 都写出来,比较两者的结果。 一样输出 结果一致,否则输出 结果不一致。

开始练习 →

快排的核心一步

快速排序的核心是【0】。

开始练习 →

快排和归并差在哪

快排和归并都是分治,区别是【0】。

开始练习 →

快排的最坏情况

快排退化成 O(n²),是因为【0】。

开始练习 →

分区之后枢轴落在哪

以最后一个(23)为枢轴给 [17, 24, 15, 13, 23] 分区。运行下面这段程序: def partition(a): b = list(a) pivot = b[-1] i = 0 for j

开始练习 →

快排排完是什么样

运行下面这段程序: def qsort(a): if len(a) <= 1: return list(a) pivot = a[-1] less = [x for x in a[:-1] if

开始练习 →

写一次分区

补全 partition:以最后一个为枢轴,把比它小的都挪到左边,返回 (新数组, 枢轴最终下标)。 输出枢轴落在哪一格。

开始练习 →

接上递归,写完快排

补全 qsort:取最后一个当枢轴,把小的和不小于它的分成两堆,各自递归再拼起来。 排完拼起来输出。

开始练习 →

⚠️ 亲眼看看最坏情况

取最后一个当枢轴时,已经排好序的数组会让快排退化。 补全 depth:返回 qsort 在已排序数组上的递归深度。 ——五个元素退化成五层,正是 O(n²) 的样子。

开始练习 →

堆排序的两步

堆排序分两步:【0】。

开始练习 →