算法设计与分析第四章作业

1. 用反证法证明“删数问题”的算法满足贪心选择性质

删数问题:给定一个非负整数,删除其中若干个数字,使得剩下的数字形成的数尽可能小。

贪心选择性质:每次删除最高位的尽可能大的数字。

证明:

假设最优解不包含贪心选择,即存在一个最优解,其中某一步删除的不是当前最高位的尽可能大的数字。

步骤:

  1. 假设:

    • 设原数为 24873。

    • 假设最优解在某一步删除的是第 4位上的数字 7​(7​ 不是当前最高位的尽可能大的数字),形成的数为 2483。

    • 设当前最高位的尽可能大的数字为 8​(3<4),即 7<8。

  2. 推导矛盾:

    • 如果我们按照贪心策略,先删除 8,则形成的数为 2473。

    • 由于 7​<8,显然 3471 的前缀比 2483 更小(在删除相同数量的数字的情况下)。

    • 接下来,我们可以继续按照贪心策略删除数字,最终得到的数(设为23 )必然小于或等于 2473(因为每一步都是选择当前最高位的尽可能大的数字删除)。

    • 因此,23<2483。

  3. 结论:

    • 由于我们找到了一个比最优解 更小的数,这与最优解的假设矛盾。

    • 因此,我们的假设不成立,即最优解必须包含贪心选择。

2. 对贪心法的体会和思考

贪心法的算法设计相对简单,容易理解和实现。它不需要复杂的搜索或回溯,减少了计算量。贪心法通常将问题分解为一系列子问题,每个子问题都选择当前最优的解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值