码迷,mamicode.com
首页 >  
搜索关键字:小堆    ( 496个结果
Libevent源码分析(一):最小堆
Libevent中的timeout事件是使用最小堆来管理维护的.代码位于.看函数命名和代码风格应该是一个C++程序员,函数名都挺好懂的,只是下面这个结构体变量命名比较坑....typedef struct min_heap{ struct event** p; unsigned n, a...
分类:其他好文   时间:2014-11-18 00:17:50    阅读次数:239
数据结构 之 二叉堆(Heap)
注:本节主要讨论最大堆(最小堆同理)。 一、堆的概念     堆,又称二叉堆。同二叉查找树一样,堆也有两个性质,即结构性和堆序性。     1、结构性质:     堆是一棵被完全填满的二叉树,有可能的例外是在底层,底层上的元素从左到右填入。这样的树称为完全二叉树(complete binary tree)。下图就是这样一个例子。         对于完全二叉树,有这样一些...
分类:其他好文   时间:2014-11-07 13:08:12    阅读次数:266
Python3实现最小堆建堆算法
今天看Python CookBook中关于“求list中最大(最小)的N个元素”的内容,介绍了直接使用python的heapq模块的nlargest和nsmallest函数的解决方式,记得学习数据结构的时候有个堆排序算法,所以顺便研究了一下“堆”结构(这里特指二叉堆)。概念所谓二叉堆(binary ...
分类:编程语言   时间:2014-11-06 19:40:59    阅读次数:470
最小堆和最大堆的JAVA实现
/** * 文件名:BinaryHeap.java * 时间:2014年11月3日下午7:15:34 * 作者:修维康 */ package chapter6; import java.util.*; /** * 类名:BinaryHeap 说明:建立一个最小堆 */ class MinHeap> { private int currentSize; private stati...
分类:编程语言   时间:2014-11-04 17:24:55    阅读次数:189
第六章——堆排序
一 堆 堆给人的感觉是一个二叉树,但是其本质是一种数组对象,因为对堆进行操作的时候将堆视为一颗完全二叉树,树种每个节点与数组中的存放该节点值的那个元素对应。所以堆又称为二叉堆,堆与完全二叉树的对应关系如下图所示:二叉堆可以分为两种形式:最大堆和最小堆。在这两种堆中,结点的值都要满足堆的性质。在最大堆...
分类:编程语言   时间:2014-11-02 20:51:42    阅读次数:244
ios开发 变量和内存
栈区:主要用来存放局部变量,传递参数,存放函数的返回地址。.esp始终指向栈顶,栈中的数据越多, esp的值越小。堆区:用于存放动态分配的对象,当你使用malloc和new等进行分配时,所得到的空间就在堆中。动态分配得到的内存区域附带有分配信息,所以你能够free和delete它们。数据区:全局,静...
分类:移动开发   时间:2014-11-01 17:29:43    阅读次数:295
快速选择 - 快速排序算法在查找中的应用
如果要我们找出一个数组中的最小(最大)的元素,那么第一反应肯定是使用最小(最大)堆。时间复杂度等同于建堆的复杂度,这里是O(N)。如果要我们找出一个数组中的第k个最小的元素,那么我们依然可以使用最小堆,删除掉k次的最小值,就得到了结果。复杂度是O(N + klogN)。如果要我们找出一个数组的中值,...
分类:编程语言   时间:2014-10-31 15:18:15    阅读次数:248
在线求中位数
在线求第k个数做得多了,在线求中位数也是用堆,一个最大堆,一个最小堆。思想大概是这样子的:一个最大堆,一个最小堆,最大堆对应于前n/(n+1)个数,最小堆对应于后n/n+1个数;假设最大堆堆项元素为n1, 最小堆堆顶为n2, 则n1 s2, 那么:如果m >= n1, m插入到最小堆,s2=s2+....
分类:其他好文   时间:2014-10-30 16:46:15    阅读次数:198
堆排序
堆排序,就是利用二叉堆的特性来完成排序的工作。这里假定我们要完成对一个数组进行从小到大排序的工作,那么利用最小堆(见《二叉堆 - 最小堆》)的特性,对于一个已经建好的最小堆,我们每次以DeleteMin函数取出最小的元素,放入一个临时数组中,如此一来,就完成了对该数组的排序。时间复杂度的话,建立堆的...
分类:编程语言   时间:2014-10-29 18:42:11    阅读次数:164
二叉堆 - 最大堆
与上篇《二叉堆 - 最小堆》类似,只不过堆序(heap order)从内部节点小于左右子节点变成了内部节点大于左右子节点。代码如下: 1 #include 2 #include 3 4 #define MIN (1items =(Item*)malloc((maxItems+1)*si...
分类:其他好文   时间:2014-10-29 16:32:17    阅读次数:270
496条   上一页 1 ... 42 43 44 45 46 ... 50 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!