码迷,mamicode.com
首页 >  
搜索关键字:小堆    ( 496个结果
数据结构——完全二叉树与(最小)堆
完全二叉树(堆)和满二叉树的结构: 满二叉树的判断: 二叉树的层次遍历。 完全二叉树的判断: 二叉树的层次遍历。 堆的增删改查: 增:按照次序从最右边节点插入,从下往上冒泡。 删:将最右下角元素置于堆顶,从上往下冒泡。 改:增+删 查:O(logN) ...
分类:其他好文   时间:2016-07-24 10:30:59    阅读次数:149
文件压缩与解压
文件压缩与解压思想:  (1)统计字符出现次数,结合最小堆的性质生成哈夫曼树;  (2)对叶节点进行编码,结点左边编0,右边编1;  (3)读取文件,用哈夫曼编码代替字符产生新的字符,即压缩;  (4)读取压缩文件,进行哈夫曼编码的解读产生相应字符,即解压; 例如,对以下数据生成哈夫曼树,以及产生相应的哈夫曼编码: //自己写的最小堆(因为在加强巩固,所以没用STL里的) ...
分类:其他好文   时间:2016-07-19 11:06:56    阅读次数:245
数据结构C++使用最小堆实现huffman树
#pragmaonce#include"Heap.h"//使用博客实现的堆template<classT>structHuffmanNode//节点的结构信息{ T_weight; HuffmanNode<T>*_parent; HuffmanNode<T>*_left; HuffmanNode<T>*_right; HuffmanNode(constT&weight) :_weight(weight) ,_parent..
分类:编程语言   时间:2016-07-11 10:46:05    阅读次数:214
数据结构C++实现基本的堆
#pragmaonce#include<vector>#include<queue>#include<cassert>#include<iostream>usingnamespacestd;//仿函数实现在建堆时确定(大小堆)template<classT>structGreater{ booloperator()(constT&left,constT&right) { returnleft>r..
分类:编程语言   时间:2016-07-11 09:12:51    阅读次数:215
51nod 1428 活动安排问题(优先队列)
1428 活动安排问题 首先按照开始时间从小到大排序. 其实只要维护一个结束时间的最小堆,每次比较开始时间和堆中最小时间的大小,如果比它大就放入堆中并且时间就要变成当前任务的结束时间, 否则就要新开一个教室.并且把结束时间加入堆中,注意判断堆是否为空. #include <cstdio> #incl ...
分类:其他好文   时间:2016-07-09 23:34:38    阅读次数:211
hashheap python 实现
这个hashheap的实现可以既可以是最大堆,也可以是最小堆,同时因为hash表中存的value是在heap数组中的index和这个key值的数目,所以可以处理重复数字.关键在于siftup和siftdown的非递归实现.siftdown相当于heapify,但是之前只使用过递归版本. ...
分类:编程语言   时间:2016-07-08 13:22:37    阅读次数:182
7种基本排序算法的Java实现
7种基本排序算法的Java实现 转自我的Github 以下为7种基本排序算法的Java实现,以及复杂度和稳定性的相关信息。 以下为代码片段,完整的代码见Sort.java 插入排序 Shell排序 选择排序 堆排序 优先级队列内部实现就是一个最小堆,这里就不自己实现heap了 冒泡排序 快排 归并排 ...
分类:编程语言   时间:2016-07-04 23:45:39    阅读次数:340
最小堆_最大堆
在大数查找中会遇到一类问题,例如在100亿条数据中找出 最大的(最小的) 前1000个元素。以int型4Byte为例,有1*1010*4 B = 4*1010/(230) B = 37.25G。 直接读取到内存中显然不合适,那么就需要: 首先,读取前1000个元素,建立一个最小堆(最大堆); 其次, ...
分类:其他好文   时间:2016-06-28 23:43:06    阅读次数:259
堆和堆排序
堆的定义如下:n个元素的序列(K1,K2......Kn)当且仅当满足Ki<=K2i&&Ki<=K2i或Ki>=K2i&&Ki>=K2i(i=1,2,3,...n/2)时称之为堆 以一维数组作为堆的存储结构,堆可以看成一个完全二叉树。 最大堆:每个父节点的都大于孩子节点。最小堆:每个父节点的都小于孩 ...
分类:编程语言   时间:2016-06-27 23:04:17    阅读次数:219
图说 堆排序
用例: 将一组数据从大到小进行排列 10, 16, 18, 12, 11, 13, 15, 17, 14, 19 size=10 步骤1.根据数组初始化堆 步骤2.从最后一个根节点( 下标为(size-1-1)/2 )开始往第一个根节点遍历,依次将每个最小子树排好序,建造一个小堆: 步骤3.进行堆排 ...
分类:编程语言   时间:2016-06-24 23:40:34    阅读次数:265
496条   上一页 1 ... 25 26 27 28 29 ... 50 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!