---- Huffman 算法的不同实现 本目录下的程序用8种不同的方式实现了Huffman编码算法,这8种方式分别是 * huffman_a 使用链表结构生成Huffman树的算法,这是最基本的实现方法,效率最低。 * huffman_b 使用《数据结构》(严蔚敏,吴伟民,1997,C语言版)中给出的算法,将二叉树存放在连续空间里(静态链表),空间的每个结点内仍有左子树、右子树、双亲等指针。 * huffman_c 使用Canonical Huffman编码,同时对huffman_b的存储结构进行改造,将二叉树存放在连续空间tree里,空间的每个结点类型都和结点权值的数据类型相同,空间大小为2*num,tree[0]未用,tree[1..num]是每个元素的权值,生成Huffman后,tree[1..2*num-1]中是双亲结点索引。 * huffman_d 在huffman_c的基础上,增加预先排序的功能先用QuickSort算法对所有元素的权值从小到大排序,这样,排序后最前面的两个元素就是最小的一对元素了。我们可以直接将它们挑出来,组合成一个子树。然后再子树的权值用折半插入法插到已排序的元素表中, 保证所有结点有序。为了保证初始元素的顺序不变,我们另外使用了一个索引数组,所有排序中的交换操作都是在索引数组中进行的
上传时间: 2015-06-12
上传用户:xg262122
用delphi实现的各种排序算法,图形界面,可实现插入排序、交换排序、选择排序、合并排序以及基数排序
上传时间: 2015-06-22
上传用户:
实现各种内部排序。包括冒泡排序,直接插入排序,Shell排序,快速排序,堆排序,并比较排序的比较次数和移动次数。主要是C语言。
标签: 排序
上传时间: 2015-07-12
上传用户:yd19890720
java 排序,冒泡排序,快速排序,选择排序,插入排序,堆排序,归并排序等等!
上传时间: 2014-01-04
上传用户:wfl_yy
最近对排序算法的复习,包括直接插入排序,冒泡排序,选择排序,快速排序,归并排序,希尔排序。在VC6.0中测试通过并有简单原理说明
标签: 排序算法
上传时间: 2013-11-29
上传用户:change0329
因为不同的排序方法适应不同的应用环境和要求,所以选择合适的排序方法应综合考虑下列因素: ①待排序的记录数目n; ②记录的大小(规模); ③关键字的结构及其初始状态; ④对稳定性的要求; ⑤语言工具的条件; ⑥存储结构; ⑦时间和辅助空间复杂度等。 本程序对以下7种常用的内部排序算法进行实测比较:插入排序、希尔排序、起泡排序、快速排序、归并排序、选择排序、堆排序。我主要负责的是希尔排序和堆排序。
上传时间: 2013-12-24
上传用户:qiao8960
精确计算各种排序算法时间效率的程序,包括冒泡排序,选择排序,插入排序,希尔排序,快速排序等多种数据结构算法。使用CPU内核时钟统计时间,极为精确。
上传时间: 2014-08-20
上传用户:kikye
用Java语言实现的各种排序,包括插入排序、冒泡排序、选择排序、Shell排序、快速排序、归并排序、堆排序、SortUtil等
上传时间: 2014-01-11
上传用户:qw12
排序算法,其中包括插入排序,合并排序,选择排序和冒泡排序
标签: 排序算法
上传时间: 2013-12-03
上传用户:cainaifa
一 :排序n个元素,元素为随机生成的长为1~16的字符串,n的取值为2k(k取4、6、8、10、12、16、18、20),排序算法分别为直接插入排序, 冒泡排序,堆排序,归并排序,快速排序,比较各种排序在不同输入下的运行时间. 二:排序n个元素,元素为随机生成的1~10000的正整数,n的取值为2k(k取4、6、8、10、12、16、18、20),排序算法分别为直接插入排序,快速排序,基数排序,计数排序,比较各种排序在不同输入下的运行时间.
上传时间: 2016-02-07
上传用户:dsgkjgkjg