归并和冒泡结果必须一样
msort 和 bubble 都已经写好。补全 main:两种排序排同一个数组,结果一样输出 结果一致,否则输出 结果不一致。 (本题用 g++ -std=c++17 -O0 编译。)
快排的核心一步
第 1 步:枢轴取最后一个 第 2 步:比枢轴小:换到左边 第 3 步:不比枢轴小:跳过 第 4 步:比枢轴小:换到左边 第 5 步:比枢轴小:换到左边 第 6 步:枢轴换到 i:左小右大 17 24 15 13 23 i j 快速排序的核
快排和归并差在哪(C++)
快排和归并都是分治,区别是【0】。
快排的最坏情况(C++)
快排退化成 O(n²),是因为【0】。
分区之后枢轴落在哪
以最后一个(23)为枢轴给 17 24 15 13 23 分区。 运行下面这段程序: #include <algorithm> #include <iostream> #include <map> #in
快排排完是什么样
运行下面这段程序: #include <algorithm> #include <iostream> #include <map> #include <string> #include <
写一次分区
补全 part_last:以最后一个为枢轴,把比它小的都挪到左边,最后把枢轴换到位,返回它的下标。输出枢轴落在哪一格。 (本题用 g++ -std=c++17 -O0 编译。)
接上递归写完快排
补全 quick:取最后一个当枢轴,把小的和不小于它的分成两堆,各自递归再拼起来。排完用 / 拼起来输出。 (本题用 g++ -std=c++17 -O0 编译。)
亲眼看看最坏情况
取最后一个当枢轴时,已经排好序的数组会让快排退化。补全:记录递归的最大深度,输出快排在已排序数组 13 15 17 23 24 上的深度。——五个元素退化成五层,正是 O(n²) 的样子。 (本题用 g++ -std=c++17 -O0 编
堆排序的两步
第 1 步:建好的大顶堆:最大在最前 第 2 步:堆顶换到末尾,末尾排好了 第 3 步:剩下的下沉,新的最大到顶 第 4 步:堆顶换到末尾,末尾排好了 第 5 步:剩下的下沉,新的最大到顶 第 6 步:重复到只剩一个:排好 24 23 15