文件名称:200611373551757_600it
- 所属分类:
- Windows编程
- 资源属性:
- [Windows] [Visual.Net] [源码]
- 上传时间:
- 2012-11-26
- 文件大小:
- 37kb
- 下载次数:
- 0次
- 提 供 者:
- e***
- 相关连接:
- 无
- 下载说明:
- 别用迅雷下载,失败请重下,重下不扣分!
介绍说明--下载内容均来自于网络,请自行研究使用
哈夫曼编码原程序
* huffman_e 在huffman_d的基础上,将索引数组放在tree的内部。为编码方便,将元素权值放在tree[num..2*num-1]处。将tree[0..num-1]作为索引数组。排序改为从大到小。对索引数组排序后,每次从最后选出2个最小值,相加后的结点权值放在索引数组最后,结点索引放在索引数组中倒数第2个位置,然后索引数组大小减1,并将最后一个索引值插入到前面的有序表中,保证索引数组仍然有序。
* huffman_f 在huffman_e的基础上,将排序改为利用堆排序原理选择最小的两个权值。也即,将所有元素的权值组织成堆后,每次堆内的根结点就是最小值了。每取出一个根结点后,就把堆尾元素调到根结点重建堆。取出两个最小值合并成一个子树后,再把子树作为叶子结点放到堆中,并让其上升到合适的位置,保持堆性质不变。因为每次不必完成整个排序过程,而只是组织成堆,因此,这种方法要比使用快速排序更快-err
* huffman_e 在huffman_d的基础上,将索引数组放在tree的内部。为编码方便,将元素权值放在tree[num..2*num-1]处。将tree[0..num-1]作为索引数组。排序改为从大到小。对索引数组排序后,每次从最后选出2个最小值,相加后的结点权值放在索引数组最后,结点索引放在索引数组中倒数第2个位置,然后索引数组大小减1,并将最后一个索引值插入到前面的有序表中,保证索引数组仍然有序。
* huffman_f 在huffman_e的基础上,将排序改为利用堆排序原理选择最小的两个权值。也即,将所有元素的权值组织成堆后,每次堆内的根结点就是最小值了。每取出一个根结点后,就把堆尾元素调到根结点重建堆。取出两个最小值合并成一个子树后,再把子树作为叶子结点放到堆中,并让其上升到合适的位置,保持堆性质不变。因为每次不必完成整个排序过程,而只是组织成堆,因此,这种方法要比使用快速排序更快-err
相关搜索: 堆排序
(系统自动生成,下载前可以参看下载内容)
下载文件列表
200611373551757_600it
.....................\哈夫曼编码
.....................\..........\Huffman.ncb
.....................\..........\Huffman.sln
.....................\..........\huffman.vcproj
.....................\..........\huffman_a.cpp
.....................\..........\huffman_a.h
.....................\..........\huffman_b.cpp
.....................\..........\huffman_b.h
.....................\..........\huffman_base.cpp
.....................\..........\huffman_base.h
.....................\..........\huffman_c.cpp
.....................\..........\huffman_c.h
.....................\..........\huffman_d.cpp
.....................\..........\huffman_d.h
.....................\..........\huffman_e.cpp
.....................\..........\huffman_e.h
.....................\..........\huffman_f.cpp
.....................\..........\huffman_f.h
.....................\..........\huffman_g.cpp
.....................\..........\huffman_g.h
.....................\..........\huffman_h.cpp
.....................\..........\huffman_h.h
.....................\..........\main.cpp
.....................\..........\Makefile
.....................\..........\README.TXT
bak
...\源软中国.htm
.....................\哈夫曼编码
.....................\..........\Huffman.ncb
.....................\..........\Huffman.sln
.....................\..........\huffman.vcproj
.....................\..........\huffman_a.cpp
.....................\..........\huffman_a.h
.....................\..........\huffman_b.cpp
.....................\..........\huffman_b.h
.....................\..........\huffman_base.cpp
.....................\..........\huffman_base.h
.....................\..........\huffman_c.cpp
.....................\..........\huffman_c.h
.....................\..........\huffman_d.cpp
.....................\..........\huffman_d.h
.....................\..........\huffman_e.cpp
.....................\..........\huffman_e.h
.....................\..........\huffman_f.cpp
.....................\..........\huffman_f.h
.....................\..........\huffman_g.cpp
.....................\..........\huffman_g.h
.....................\..........\huffman_h.cpp
.....................\..........\huffman_h.h
.....................\..........\main.cpp
.....................\..........\Makefile
.....................\..........\README.TXT
bak
...\源软中国.htm