码迷,mamicode.com
首页 >  
搜索关键字:最小堆    ( 426个结果
定时器管理:nginx的红黑树和libevent的堆
libevent 发生超时后, while循环一次从堆顶del timer——直到最新调整的最小堆顶不是超时事件为止,(实际是del event),但是会稍后把这个timeout的 event放到active 任务list里, 等待处理,event标记为timeout,等处理actvie队列时再由应 ...
分类:其他好文   时间:2016-09-08 23:18:38    阅读次数:805
服务器开发之定时器
写这篇文章前搜了下网上类似的文章,有很多,所以笔者的这篇文章就不对定时器的常见实现方法加以说明,也不进行性能比较,直接上代码。 基于multimap实现的比较简单,这里略过。 1 最小堆实现 2 时间轮实现 结束语 在曾经的很多项目中,定时器的实现都是使用map,也许效率不是太高,却从来没有成为性能 ...
分类:其他好文   时间:2016-09-03 12:20:58    阅读次数:221
堆排序
堆排序基本概念堆是一种数据结构,它是将一些数据放在物理数据结构:数组或者vector中;逻辑数据结构是完全二叉树。如果根节点的值大于两个子节点值,就是大根堆;如果根节点的值小于两个子节点值,就是小根堆。用堆这种数据结构来实现排序,就是堆排序。该算法的操作主要有minheapify:最小堆处理,复杂度... ...
分类:编程语言   时间:2016-08-31 17:11:39    阅读次数:253
寻找最小的k个数(大顶堆方法)
题目描述:查找最小的k个元素,输入n个整数,输出其中最小的k个。 一般的排序方法,如快排,时间复杂度为O(n*logn+k); 大顶堆方法,时间复杂度为O(k+(n-k)*logk); 如果建立k个元素的最小堆的话,那么其空间复杂度势为O(N),而建立k个元素的最大堆的空间复杂度为O(k); 当面对 ...
分类:其他好文   时间:2016-08-28 11:00:37    阅读次数:495
一些基本数据知识
堆堆,也叫二叉堆,就是完全二叉树二叉堆满足二个特性:1.父结点的键值总是大于或等于(小于或等于)任何一个子节点的键值。2.每个结点的左子树和右子树都是一个二叉堆(都是最大堆或最小堆)。当父结点的键值总是大于或等于任何一个子节点的键值时为最大堆。当父结点的键值总是小于或等于任何一个子节点的键值时为最小... ...
分类:其他好文   时间:2016-08-14 14:22:27    阅读次数:131
COGS 2421.[HZOI 2016]简单的Treap 题解
题目大意: 给定n个数及其优先级,求对应的符合最小堆性质的Treap的先序遍历。 n<=500000。 解法: 目前为止我只想到了三种解法,其中第三种是正解。 1.暴力1 以优先级为关键字排序,然后按顺序构建BST即可。注意不能加平衡,因为这样会改变树的先序遍历。 期望复杂度O(nlogn)(排序和 ...
分类:其他好文   时间:2016-08-07 21:31:24    阅读次数:173
二叉堆
堆的定义 堆(heap),这里所说的堆是数据结构中的堆,而不是内存模型中的堆。堆通常是一个可以被看做一棵树,它满足下列性质: [ 性质一 ] 堆中任意节点的值总是不大于(不小于)其子节点的值; [ 性质二 ] 堆总是一棵完全树。 将任意节点不大于其子节点的堆叫做最小堆或小根堆 ,而将任意节点不小于其 ...
分类:其他好文   时间:2016-08-01 20:57:01    阅读次数:285
数据结构——完全二叉树与(最小)堆
完全二叉树(堆)和满二叉树的结构: 满二叉树的判断: 二叉树的层次遍历。 完全二叉树的判断: 二叉树的层次遍历。 堆的增删改查: 增:按照次序从最右边节点插入,从下往上冒泡。 删:将最右下角元素置于堆顶,从上往下冒泡。 改:增+删 查: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
426条   上一页 1 ... 21 22 23 24 25 ... 43 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!