贪心算法:如何用贪心算法实现huffman压缩编码?

本文探讨了如何使用贪心算法实现Huffman压缩编码,通过实例解释了贪心算法的基本思想,包括分糖果、钱币找零和区间覆盖问题。并详细介绍了Huffman编码的原理和构建过程,以及其在字符频率不同情况下的编码策略。
摘要由CSDN通过智能技术生成

贪心算法:如何用贪心算法实现huffman压缩编码?

贪心算法(greedy algorithm) 有很多经典应用,Huffman coding、Prim和Kruskal最小生成树算法还有Dijkstra单源最短路径算法,如何利用贪心算法来实现对数据压缩编码有效节省数据存储空间?

如何理解“贪心算法”?

假设我们有一个可以容纳100kg物品的背包,有以下5种豆子,每种豆子的总量和总价值不同,为了让背包中所装物品的总价值最大,如何选择又装多少呢?

物品 总量(kg) 总价值(元)
黄豆 100 100
绿豆 30 90
红豆 60 120
黑豆 20 80
青豆 50 75

只有先算算每个物品的单价,按照单价从高到低排列依次来装即可,黑豆、绿豆、红豆、青豆、黄豆。所以是20kg黑豆,30kg绿豆、50kg红豆,这思路就是贪心算法

  • 当看到这类问题时候联想到贪心算法:针对一组数据,定义了限制值和期望值,希望从中选出几个数据,在满足限制值的情况下,期望值最大。限制值就是重量不超过100kg,期望就是总价值最大
  • 尝试是否可以用贪心算法解决:每次选择当前情况下,在对限制值同等贡献量的情况下&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值