码迷,mamicode.com
首页 > 其他好文 > 详细

数据压缩算法之哈夫曼编码(HUFFMAN)的实现

时间:2014-05-02 00:20:13      阅读:320      评论:0      收藏:0      [点我收藏+]

标签:文件   数据   使用   算法   man      

HUFFMAN编码可以很有效的压缩数据,通常可以压缩20%到90%的空间(算法导论)。具体的压缩率取决于数据的特性(词频)。如果采取标准的语料库进行编码,一般可以得到比较满意的编码结果(对不同文件产生不同压缩率的折中方法)。

本文采取对单独一个文件进行编码的方式来演示此压缩算法的使用。

分为下面几个步骤:

1.统计词频数据

2.词频数据转换成HUFFMAN算法能够处理的类型(本文为HuffmanNode,内部有存储词频和树节点的结构)

  (1)由输入的HuffmanNode[]数组创建最小优先级队列

  (2)依次取出队列中的每两个节点,然后由此两个节点构造一个新的节点,然后在重新插入回队列。知道队列中只剩唯一一个节点。

    此节点为编码树的根节点。

  (3)依次遍历原来输入的每个HUFFMAN节点,得到每个字符的对应编码(压缩使用)。

  (4)解码方式,依次输入0/1字符码到算法,算法遍历产生的编码树,如果有返回字符,则得到解码字符。

 

数据压缩算法之哈夫曼编码(HUFFMAN)的实现,布布扣,bubuko.com

数据压缩算法之哈夫曼编码(HUFFMAN)的实现

标签:文件   数据   使用   算法   man      

原文地址:http://www.cnblogs.com/andyzeng/p/3703321.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!