⚠️ 「期望」和「平均情况」差在哪

随机快排的期望复杂度,和普通快排的平均情况复杂度,区别是【0】。

开始练习 →

固定取第一个,最坏和最好各多少次

五个元素的全部 120 种排列,快排总是拿第一个当 pivot,比较次数的最大值和最小值: from itertools import permutations def qs_cmp(a): """总

开始练习 →

120 种输入的比较次数加起来是多少

把全部 120 种排列的比较次数加总: from itertools import permutations def qs_cmp(a): """总是拿第一个当 pivot 的快排,返回比较次数&qu

开始练习 →

自己写:数出快排的比较次数

补全划分那两步,输出 120 种输入里的最坏比较次数和总和。

开始练习 →

🔴 最坏输入里,就有已经排好序的那个

算出最坏比较次数之后,再看看已经排好序的那个输入(0,1,2,3,4) 花了多少次,以及它是不是正好就在最坏那一档。

开始练习 →

🔴 期望正好等于那个平均

随机快排的期望比较次数,和"固定取第一个"在全部 120 种输入上的平均,把这两个数比一比。用分数算,别用浮点。

开始练习 →

🔴 固定策略随输入变,随机策略的期望不变

三个输入:已排好序、完全逆序、乱序。固定取第一个当 pivot 各比多少次?再判一下随机 pivot 的期望在这三个输入上是不是同一个数。

开始练习 →

近似算法给的是什么样的保证

一个 2-近似算法,保证的是【0】。

开始练习 →

⚠️ NP-hard 意味着什么

某个问题被证明是 NP-hard。这告诉你【0】。

开始练习 →

贪心和最优,各要几个点

一张七个点的图(顶点覆盖:挑最少的点,让每条边至少有一头被挑中)。贪心和暴力最优各挑了几个点? from itertools import combinations E = [(0, 1), (0, 2), (1, 2), (1, 3),

开始练习 →