Huffman (C)1. n=|C|2. Q ← C3. for i=1 to n-14. do5. z= allocate-Node ()6. x=left[z]=Extract-Min(Q)7. y= right[z] =Extract-Min(Q)8. f [z]=f[x]+f[y]9. Insert (Q, z)10. return Extract-Min (Q)
示例:为以下一组频率找到最佳霍夫曼码:
a: 50 b: 25 c: 15 d: 40 e: 75
解:
文章图片
即
文章图片
再次对于i = 2
文章图片
文章图片
文章图片
同样, 我们采用相同的过程
文章图片
文章图片
【霍夫曼编码算法详细实现】因此, 最终输出为:
文章图片
推荐阅读
- 活动或任务计划问题
- 霍夫曼编码和贪婪算法
- 分数背包问题和贪婪算法
- 活动选择问题和贪婪算法
- 0/1背包问题(动态规划方法)
- 最长公共序列算法
- 最长公共序列(LCS)和动态规划
- 如何在Ubuntu上安装NFS服务器(分步指南)
- 如何从头开始构建Linux内核(详细分步指南)