哈夫曼算法原理Wikipedia上面说的非常清楚了,这里我就不再赘述,直接贴过来了。1952年, David A. Huffman提出了一个不同的算法,这个算法能够为不论什么的可能性提供出一个理想的树。香农-范诺编码(Shanno-Fano)是从树的根节点到叶子节点所进行的的编码,哈夫曼编码算法却是...
分类:
其他好文 时间:
2014-06-26 21:36:45
阅读次数:
437
题目//做哈夫曼树时,可以用优先队列(误?)//这道题教我们优先队列的一个用法:取前n个数(最大的或者最小的)//哈夫曼树//64位//超时->优先队列,,,,//这道题的优先队列用于取前2个小的元素#include #include#include#include#includeusing nam...
分类:
其他好文 时间:
2014-06-26 16:01:24
阅读次数:
215
题解
用类似哈夫曼树的思想去考虑,每次选取两个较小的点合并,然后把合并后的放回原集合。用一个小根堆去维护即可。
注意首先,C++的优先队列默认是大顶堆,所以需要改写;其次,改写之后的堆是没有clear()方法的,所以务必记住队列的清空!...
分类:
其他好文 时间:
2014-06-25 07:34:58
阅读次数:
274
数据表示和数据结构的关系:
数据表示是由硬件实现的数据类型,而数据结构是由软件实现的数据类型。数据结构是通过数据表示和软件映象相结合方法实现,通俗一点就是数据结构离不开数据表示的支持。
自定义数据表示:
带标示符的数据表示:主要用于指明数据类型(如二进制整数、十进制整数)
数据描述符:描述复杂和多维的结构类型
二者的区别:
标识符是和...
分类:
其他好文 时间:
2014-06-16 20:24:12
阅读次数:
262
课程介绍
这门课程核心内容是算法和数据结构。
具体的算法和数据结构如下:
数据类型:堆栈、队列、背包、并查集、优先队列。
排序:快排、并排、堆排、基数排序
查找:BST、红黑BST、哈希表
图:BFS、DFS、Prim、Kruskai、Dijkstra
字符串:KMP、正则、TST、哈夫曼、LZW
高级:B树、后缀数组、最...
分类:
其他好文 时间:
2014-06-01 10:52:26
阅读次数:
285
gzip是GNU zip的缩写,它是一个GNU自由软件的文件压缩程序,
也经常用来表示gzip这种文件格式。软件的作者是Jean-loup Gailly和Mark
Adler。gzip的基础是DEFLATE,DEFLATE是LZ77与哈夫曼编码的一个组合体。DEFLATE最初是作为LZW以及其它受专...
分类:
其他好文 时间:
2014-05-28 13:37:59
阅读次数:
261
概述 哈夫曼树:树的带权路径长度达到最小。 构造规则 1. 将w1、w2、…,wn看成是有n
棵树的森林(每棵树仅有一个结点); 2.
在森林中选出根结点的权值最小的两棵树进行合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和; 3.
从森林中删除选取的两棵树,并将新树加...
分类:
其他好文 时间:
2014-05-24 02:49:48
阅读次数:
257
今年是淘米第一年招暑期实习生,笔试好大部分考的是软考的题目啊啊啊啊(劳资后悔当年没考软考刷加权),其他是浅而泛的风格,C++,SQL语句,数据结构(哈夫曼树,二叉查找树,栈后缀表达式,连通无向图),排序算法各种最优最差平均
复杂度……下面记一下考到的软考风格的题目,不过估计其他家也不会考(劳资什么时...
分类:
其他好文 时间:
2014-05-23 03:19:19
阅读次数:
289
基本C/C++、STL(vector、set、map、queue、string、algorithm)枚举、贪心、递归、分治、递推、模拟构造、位运算、常数优化数据结构队列、堆、栈、链表排序(插入、冒泡、快速、归并、堆、桶、基数)二分查找、散列表、并查集、哈夫曼树排序二叉树、左偏树、平衡树(Splay/...
分类:
其他好文 时间:
2014-05-09 08:10:36
阅读次数:
338