有趣算法:Huffman Decoding:
2016-08-16 11:41
176 查看
介绍:
给固定长度的输入字符,根据他们的使用频率分配不固定长度的二进制编码.
例子:
如:字符串:"ABACA",其中A的频率是3,B和C的频率都是1 1.根据频率生成一颗Huffman Tree如下: {$,5} 0/ \1 {$,2} {A,3} 0/ \1 {B,1} {C,1} 2.那么给出任意的二进制编码后的数据,都可以解码生成原数据: 假设:收到str='110001'这个数据. 开始解码: '1':(i)从root向右子节点移动,获得A '1':同上(i)获得A '0':(ii)从root向左子节点移动,data=$,非叶子节点,继续判断下一位. '0':从(ii)判断向左子节点移动,得到B '0':(iii)从root向左子节点移动,data=$,判断下一位. '1':从(iii)向右子节点移动,data=C,获得C 输出结果:AABC
相关文章推荐
- Huffman 编码算法之 Java 实现
- 算法刷题:有趣的数字
- 一道有趣算法题(转自水源BBS)
- Huffman 编码压缩算法
- 并查集算法(有趣的讲解)
- 有趣的算法(一):如何让有情人终成眷属
- huffman 编码算法
- 有趣的题目:四色着色问题算法研究
- [算法入门]闰年判断(有趣的做法)
- 算法有趣的数java代码
- 白话经典算法系列之十 一道有趣的GOOGLE面试题
- 有趣的算法问题12——跳跃游戏1(贪心算法)
- HackerRank Huffman Decoding(Huffman解码)
- Huffman算法
- 一个有趣的算法随机产生N个数,使其总和等于M
- 有趣的数字算法
- 【Linux kernel】有趣算法
- 贪心算法 - 哈夫曼编码 Huffman
- Huffman 编码压缩算法
- Huffman decoding.