贪心算法

贪心算法又叫贪婪算法,是指对问题进行求解时,在每一步选择中都采取最好或最优(即最有利)的选择,从而希望能够导致结果是最好或者最优的算法。
但是贪心算法所得到的的结果不一定是最优的结果(当然有时回事最优解),但其结果都是相对接近最优解的结果。
贪心算法最佳应用-集合覆盖
假设存在如下表所示的需要付费的广播台,以及广播台信号可以覆盖的地区,如何选择最少的广播台,让所有的地区都可以接收到信号

广播台覆盖地区
K1北京,上海,天津
K2广州,北京,深圳
K3成都,上海,杭州
K4上海,天津
K5杭州,大连

此问题使用穷举法实现,效率很低,需要幂级别的时间复杂度。
那么使用贪心算法,其思路为:

  1. 遍历所有的电台,寻找一个覆盖最多未覆盖地区的电台(此电台可能包含一些已覆盖的地区,但没关系)
  2. 将这个电台加入到一个集合中,想办法把该电台覆盖的地区在下次比较时去掉。即下次寻找电台时,就不用再考虑这个电台覆盖的地区了。
  3. 重复第1步,直至覆盖所有地区
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值