利用STL中的优先级队列进行优化
我将压缩和解压分为两部分,其实一些还是是一样的
压缩的时候通过bitset将每8个01串压缩成一个字节,如果最后一个不满足8个,用0补齐,但是要记录最后一个字节实际有多少个有效位,将其存入文件最后一个字节,解压的时候先将文件定位到最后一个字节,取出有效位的个数,压缩文件真正有效的是倒数第二个字节,倒数第一个字节只是记录倒数第二个字节中有几位是有效的,解压的时候...
分类:
其他好文 时间:
2015-01-03 17:21:41
阅读次数:
155
/*
霍夫曼编码
哈夫曼树(Huffman Tree),又叫最优二叉树,指的是对于一组具有确定权值的叶子结点的具有最小带权路径长度的二叉树
1.数据移动时无符号不同于有符号,右移要默认为0
2.文件操作以字节为最小单位。凑足写入,最后多一个字节写上次剩余多少
3.区分叶子节点与内部节点,8个字符的最长路径为7
无符号类型的应用,位操作在有符号时候会带符号操作,当系统使用文本方式打开文件后,会对...
分类:
其他好文 时间:
2015-01-02 09:50:26
阅读次数:
196
?1,霍夫曼编码描述哈夫曼树─即最优二叉树,带权路径长度最小的二叉树,经常应用于数据压缩。 在计算机信息处理中,“哈夫曼编码”是一种一致性编码法(又称“熵编码法”),用于数据的无损耗压缩。这一术语是指使用一张特殊的编码表将源字符(例如某文件中的一个符号)进行编码。这张编码表的特殊之处在于,它是根据每一个源字符出现的估算概率而建立起来的(出现概率高的字符使用较短的编码,反之出现概率低的则使用较长的编...
分类:
编程语言 时间:
2014-12-30 23:36:36
阅读次数:
382
第一章: 1.时间估算。 2.“抽签”优化 3.Ants Poj 1852的思考过程第二章: 1.next_permutation函数 2.栈内存和堆内存——关于内存抽象。 * 3.Best Cow Line Poj 3617 * 4.霍夫曼编码 5.01背包的空间优化 6.memse...
分类:
其他好文 时间:
2014-09-10 12:05:50
阅读次数:
249
霍夫曼编码是一种无损数据压缩算法。在计算机数据处理中,霍夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码,其中变长编码表是通过一种评估来源符号出现机率的方法得到的,出现机率高的字母使用较短的编码,反之出现机率低的则使用较长的编码,这便使编码之后的字符串的平均长度、期望值降低,从而达到无损...
分类:
其他好文 时间:
2014-07-30 00:46:12
阅读次数:
526