回答与证明
目录
求证:如果一个算法在平均情况下的计算复杂性为θ(f(n)),则该算法在最坏情况下所需的计算时间为Ω(f(n))。
说明O、θ、Ω三种函数阶的定义
给出两个函数阶的证明过程
求证:如果一个算法在平均情况下的计算复杂性为θ(f(n)),则该算法在最坏情况下所需的计算时间为Ω(f(n))。
( N:问题规模 I:输入 P(I):概率 Dn:多规模输入集)
特殊0-1背包问题
按贪心算法的证明步骤,给出哈夫曼算法的正确性证明
要证明哈夫曼算法的正确性,只要证明最优前缀码问题具有贪心选择性质和最优子结构性质。
有8个集装箱,其重量分别为 100、200、50、90、150、50、20和80,要装上一艘载重量为400的轮船。 (1)在装载体积不受限制的情况下,如何装入才能使得装上轮船的集装箱数量最大;(2)证明该装载问题具有贪心选择性质。
这是一个经典的背包问题,我们可以使用贪心算法来解决。
(1) 在装载体积不受限制的情况下,我们应该优先选择重量较小的集装箱。这样可以使得装上轮船的集装箱数量最大。具体步骤如下:
首先,我们将所有集装箱按照重量从小到大排序,得到:20、50、50、80、90、100、150、200。
然后,我们从重量最小的集装箱开始,依次尝试是否可以装入轮船。如果当前集装箱的重量加上已经装入轮船的集装箱的总重量不超过轮船的载重量,那么我们就可以将其装入轮船。
最后,我们得到的结果是:20、50、50、80、90、100,共6个集装箱可以装入轮船。
(2) 这个装载问题具有贪心选择性质,因为我们在每一步都做出了在当前看来最好的选择(选择重量最小的集装箱),并且这个局部最优选择能够导致全局最优解(装入轮船的集装箱数量最大)。这就是贪心选择性质的定义。在这个问题中,我们没有必要重新考虑以前的选择,也就是说,如果我们从轮船上卸下一个集装箱,那么剩下的集装箱仍然是最优装载方案。这就证明了这个问题具有贪心选择性质。