贪心算法:哈弗曼编码
来源:互联网 发布:微信一键转发软件免费 编辑:程序博客网 时间:2024/06/15 18:32
哈弗曼树构建:每次选取频率最小和次小的两个字符;
将这两个字符从序列中删去;
新建一个节点
按照左小右大,分别作为新节点的左右子树;
新节点的频率为其左右子树频率之和;
将新节点插入字符序列中;
重复以上过程,知道序列中指一个节点(字符)
算法伪代码:
符号说明:
C是n个字符的集合;
对于每个c∈C,c都是一个对象:c.freq为该字符出现的频率
Q为一个以c.freq为关键字的最小优先队列
EXTRACT_MIN(Q):表示从优先队列中选出最小的元素,并删除该元素。
核心代码:
void hunfuman(C)
n=|C|;
Q=C;
for i=1 to i=n-1
创建一个新节点z ;
z.left=x=EXTRACT_MIN(Q);
z.right=y=EXTrACT_MIN(Q);
z.freq=x.freq+y.freq;
Insert(Q,z);
return EXTRACT_MIN(Q);
0 0
- 贪心算法:哈弗曼编码
- 贪心算法求解哈弗曼编码
- 贪心算法(3)哈弗曼编码算法
- 算法java实现--贪心算法--哈弗曼编码
- OJ3RD 1132 哈弗曼编码 - 贪心算法&哈夫曼树
- 1053 Entropy 哈弗曼编码 贪心算法
- 贪心算法---哈夫曼编码
- 贪心算法-赫夫曼编码
- 贪心算法-哈夫曼编码
- 贪心算法-Huffman编码
- 【贪心算法】Huffman编码
- 哈夫曼编码--贪心算法
- 【算法设计与分析】8、哈弗曼编码,贪心算法实现
- 贪心算法 - 哈夫曼编码 Huffman
- 贪心算法--哈夫曼编码问题
- 贪心算法之哈夫曼编码
- 贪心算法(scheme)--哈夫曼编码
- 贪心算法之赫夫曼编码
- Maven添加jar包
- 在linux下检测arp冲突
- All versions of the libraries must be the same at this time.
- 在ubuntu上搭建android开发环境(2)——通过windows启动器启动ubuntu
- oralce insert 多表
- 贪心算法:哈弗曼编码
- linux中dup()、dup2()的学习总结
- Nand Flash 基本介紹
- Struts2工作流程和原理
- 学习日记-三大特性之继承
- SAT写作重要方法之体会英文名著观察生活
- syntax error near unexpected token ?怎么解决
- spring事务传播机制实例讲解
- Java String详解