换一个输入它就露馅了
同一个 msort_bad,换成 {0, 1, 2, 4, 3}。程序原样运行(不要修它),输出什么? #include <algorithm> #include <iostream> #include <st
把合并的最后一步补上
补全归并的收尾——循环出来时,两边一定有一边还剩着。补全后排 {0, 1, 2, 4, 3}。 (本题用 g++ -std=c++17 -O0 编译。)
错的那版有几种照样对
把五个元素的全部 120 种排列都喂给 msort_bad,数一数有多少种它照样给出了正确结果,输出如 n/120。 (本题用 g++ -std=c++17 -O0 编译。)
交付基线归纳步不丢元素
把归纳证明的三件事各写成一次检查:基线(长度 0 和 1)、归纳步(拿 {1,4,6} 和 {2,3,5} 两个排好的半边合并)、不丢元素(排 {0,1,2,4,3} 之后还是那五个数)。输出如 过/过/过。 (本题用 g++ -std=c
下界说的是什么
说比较排序有一个下界,意思是【0】。
决策树的叶子对应什么
第 1 步:每比一次,分成两支 第 2 步:再往下比 第 3 步:每片叶子是一种顺序 第 4 步:6 种顺序要 6 片叶子 第 5 步:最深的那条路就是最坏 a:b b:c a:c 1 a:c 2 b:c 3 4 5 6 把一个比较排序画成
这个下界管哪种情况
比较排序的这个下界,说的是【0】。
五个元素的下界是多少
五个元素一共有多少种排列?装下这么多叶子的二叉树至少多高?输出「排列数/下界」: #include <algorithm> #include <iostream> #include <string> #i
两种排序的最坏比较次数
把五个元素的全部 120 种排列都跑一遍,插入排序和归并排序各自最坏比了多少次: #include <algorithm> #include <iostream> #include <string> #i
有输入低于下界矛盾吗
下界算出来是 7。数一数 120 种输入里,归并用了不到 7 次就排完的有几种,再报出最坏的那一档,输出「下界/低于下界的个数/最坏」。 (本题用 g++ -std=c++17 -O0 编译。)