全文预览

C 数据结构之哈夫曼编码

上传者:你的雨天 |  格式:doc  |  页数:11 |  大小:225KB

文档介绍
的问题是快速排序算法,按照书上的算法,快速排序需要从双向往中间靠拢,最后定下权值的位置,对此我曾一度想要改成用双向链表存储数据以实现书上的算法。但是后来感觉到这样会使整个程序显得异常臃肿(编完还需要加入时间算法和关键字统计算法),于是我又上网搜了一下,发现单链表的快速排序是有的,和书上的改进的快速排序算法思想是一样的,先将所有的数据根据权值左右分开,最后留下中间的位置给权值,然后不断递归求得最终结果。根据这个思想我顺利地编出了快速排序的算法。(3)在加入时间函数的时候也出现了一些问题,这主要是由于缺乏经验,不知道什么样的函数能够显示微秒级别的程序运行时间,这个问题在和同学讨论并上网搜索的过程中顺利地解决了。(4)再有就是关键字的统计方面,由于是最后加入,所以从整个程序来看,加入了8个静态全局变量,用来分别记录4个排序算法的关键字比较次数和移动次数。在具体的函数内部实现上,可能由于测试数据数量太小,线性或者平方的关系表现的并不是很明显。2.心得体会:这次编写代码延续了上次编写哈夫曼的良好风格,几乎是全程独自编写,只参考了网上的个别算法思想。这对我的编程能力又是一次极大的加强,以前编的程序简单,可以参考的代码多,几乎编出来的就已经是正确的,几乎很少调试。但是现在全是自己编,出现的问题很多,经常编译出来是一长串的问题,即时编译通过,运行时也经常达不到想要的效果,所以不得不多次使用但不调试F11来查找程序错误。在这个过程中有苦有乐,但是不管怎样,编译通过,运行成功那一时刻的喜悦,我想每一个喜欢编程的人都是能够理解的!3.下一步的改进:其实有个第五项其他选项我没有完成,原因是虽然只编4个函数,但已花费了大量时间。从时间上来说确实是不允许的。如果时间足够,我想再多编几个函数,实现链表的其他排序。话又说回来,链表的排序确实没有数组来的方便,我想有机会还是多和书上的数组的排序算法亲近亲近。

收藏

分享

举报
下载此文档