7.4-1
假设 。那么有
可以发现,当 或 时, 中包含的内容将达到最大,因此有
其中步骤 假设了 渐进上界比 大。
令 。由于 ,那么由数学归纳法,结论 成立。
7.4-2
可以知道,最好运行时间 的递推式满足 。假设 ,那么有
将最后一行 中的内容对 取指数,得到 。可以发现,当 时,这个式子才能取到最小值。不过为了方便证明,如果 大于等于其中的非最小值,那么 一定大于等于其中的最小值,因此令 ,有:
其中,步骤 使用了假设 ,即 ,步骤 假设了 的渐进增长要高于 (只要 大到恰到好处)。
因此,只需要假设 ,并且 取值足够大。那么由数学归纳法,结论 成立。
7.4-3
令 ,那么 。当 时,。因此 在区间 上递减,在 上递增。因此 在 或者是 上取到最大值。
7.4-4
类似的,假设随机变量 是算法 RANDOMIZED-QUICKSORT
所进行的比较次数,那么按照书上的结论,有:
其中,步骤 是因为当 时, 成立。
因此,整个算法的期望运行时间为 。
7.4-5
按照递归树的思想,如果数组长度小于等于 时停止递归,那么整个递归树的高度为 ,并且每一层所调用的划分算法的运行时间之和为 。因此,快速排序部分的运行时间为 。
当 时,算法终止递归,由于子问题不重叠,因此划分出的叶节点大约有 个。根据插入排序算法的时间复杂度 。因此,插入排序部分的时间为 。
因此,总共的时间复杂度之和为 。
如果不考虑不同算法之间的常数步骤耗费时间,那么令 。
那么有 。当 时,有 。此时 在 处取到最小值。因此 。
如果考虑不同算法之间的常数步骤耗费时间,那么 需要通过实验来分析取得。
7.4-6
不失一般性,假设 ,因为当 时,划分情况一致。
假设这个数组的 个元素都不相同,随机选取 个数,那么有 种选法。其中,第 小的数成为最终的支点的支点的选法有 种,因为比 小的数有 种选法,比 大的数有 种选法。令 表示第 小的元素最终成为支点的概率。
划分的元素是第 小时,只有当 满足 时,以 划分才不会更坏,这样的 的概率占比之和为:
考虑去除 分子分母中的所有非三次项(即低阶项),得到 ,并令 回代到 中,得到 。