实用算法实现-第 11 篇 贪心算法
2011-10-20 12:17 myjava2 阅读(184) 评论(0) 编辑 收藏 举报11.1 Huffman编码
Huffman设计了一个可以用来构造一种称为Huffman编码的最优前缀码的贪心算法。
11.1.1 实例
PKU JudgeOnline, 1521, Entropy.
11.1.2 问题描述
给定一组ASCII码组成的字符串,求用Huffman编码该字符串所需的长度,及采用该编码带来的压缩比。
11.1.3 输入
AAAAABCD
THE_CAT_IN_THE_HAT
END
11.1.4 输出
6413 4.9
144 51 2.8
11.1.5 分析
采用贪心算法,使用最小堆就可以实现Huffman树的构建。为了便于计算每种字符对应的码的长度,用update()维护depth数组。如果需要求出每种字符对应的编码,只需要进一步增强update()函数即可。
注意:对于只有同一种字符的字符串要特殊处理。
11.1.6 程序
本文章欢迎转载,请保留原始博客链接http://blog.csdn.net/fsdev/article