哈夫曼树
Kesiruto
猜猜我写什么??
展开
-
【树】哈夫曼树(一)
题目大意给你字母的个数n,然后各个字母在电文中的出现的频率,为这n个字母设计哈夫曼编码。用二进制数表示这n个字母的编码方案.(左子树根节点的权小于等于右子树根节点的权,按中序遍历输出)思路此题时间复杂度为O(N^2)。在序列中选取其根结点的权值为最小的两棵二叉树,分别作为左、右子树构造一棵新的二叉树,并置这棵新的二叉树根结点的权值为其左、右子树根结点的权值之和;从F中删去这两棵树,同时加入刚生成的新原创 2016-12-09 19:39:49 · 591 阅读 · 0 评论 -
排序I
题目大意给你n个数,由小到大排序。思路此题时间复杂度为O(nlog n)。堆上运算(上移、下移、插入、删除、删除最大值)、创建堆、堆排序。上移操作假定对于某个i>1,H[i]变成了健值大于它父结点的健值的元素,这样就违返的堆的特性,因此这样的数据结构就不成为堆了,要修复堆的特性,需要用Sift-up把新数据项移动合适的位置。即:运算沿着从H[i]到根结点的唯一一条路径,把H[i]移动到合适的位置。下原创 2016-12-09 19:50:53 · 328 阅读 · 0 评论