贪心算法详解:哈夫曼编码

理解贪心算法

贪心算法是一种算法思想,并不是一个具体的算法,因此我们用两个例子来理解什么样的问题适合用贪心算法解决。

例一
现在有一个能装 100g 物品的背包,和一些可拆分的物品(见表格),怎么装才能使背包中物品价值最大?

物品 重量 价值
A 100g 100
B 60g 120
C 50g 150
D 20g 50

容易想到的方法是通过计算物品单价,从高到低往背包中放。

例二
在一个加权有向图中,求 A 到 G 的最短距离。
在这里插入图片描述

若依旧使用例一中的方法,则找到的路径是 A->B>D>E>G,明显不是最短的路径。

综述
例一和例二的相同点:

  1. 要得到最终的结果,都需要多次决策,
    比如例一中每次决策选择一个物品,例二中每次决策选择一条路。

例一和例二的区别:

  1. 例一中每次决策都不会影响后续的决策范围,即选择了一个物品后,下次选择范围仍然是所有物品,而例二中,第一次决
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值