算法分析与设计(耿国华第二版)

回答与证明

目录

回答与证明

说明O、θ、Ω三种函数阶的定义

给出两个函数阶的证明过程

求证:如果一个算法在平均情况下的计算复杂性为θ(f(n)),则该算法在最坏情况下所需的计算时间为Ω(f(n))。

特殊0-1背包问题

按贪心算法的证明步骤,给出哈夫曼算法的正确性证明

有8个集装箱,其重量分别为 100、200、50、90、150、50、20和80,要装上一艘载重量为400的轮船。 (1)在装载体积不受限制的情况下,如何装入才能使得装上轮船的集装箱数量最大;(2)证明该装载问题具有贪心选择性质。

说明O、θ、Ω三种函数阶的定义

给出两个函数阶的证明过程

求证:如果一个算法在平均情况下的计算复杂性为θ(f(n)),则该算法在最坏情况下所需的计算时间为Ω(f(n))。

( N:问题规模  I:输入   P(I):概率      Dn:多规模输入集)

特殊0-1背包问题

按贪心算法的证明步骤,给出哈夫曼算法的正确性证明

要证明哈夫曼算法的正确性,只要证明最优前缀码问题具有贪心选择性质和最优子结构性质。

有8个集装箱,其重量分别为 100、200、50、90、150、5020和80,要装上一艘载重量为400的轮船。 (1)在装载体积不受限制的情况下,如何装入才能使得装上轮船的集装箱数量最大;(2)证明该装载问题具有贪心选择性质。

     这是一个经典的背包问题,我们可以使用贪心算法来解决。

(1) 在装载体积不受限制的情况下,我们应该优先选择重量较小的集装箱。这样可以使得装上轮船的集装箱数量最大。具体步骤如下:

首先,我们将所有集装箱按照重量从小到大排序,得到:20、50、50、80、90、100、150、200。

然后,我们从重量最小的集装箱开始,依次尝试是否可以装入轮船。如果当前集装箱的重量加上已经装入轮船的集装箱的总重量不超过轮船的载重量,那么我们就可以将其装入轮船。

最后,我们得到的结果是:20、50、50、80、90、100,共6个集装箱可以装入轮船。

(2) 这个装载问题具有贪心选择性质,因为我们在每一步都做出了在当前看来最好的选择(选择重量最小的集装箱),并且这个局部最优选择能够导致全局最优解(装入轮船的集装箱数量最大)。这就是贪心选择性质的定义。在这个问题中,我们没有必要重新考虑以前的选择,也就是说,如果我们从轮船上卸下一个集装箱,那么剩下的集装箱仍然是最优装载方案。这就证明了这个问题具有贪心选择性质。

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值