码迷,mamicode.com
首页 >  
搜索关键字:数据结构堆    ( 182个结果
C++100w个数中找出最大的前K个数
#include<iostream>usingnamespacestd;#include<assert.h>constintN=10000;constintK=100;voidAdjustDown(inttopK[],intsize,size_tparent){ assert(topK); intchild=parent*2+1; while(child<size) { if(child+1<size &&topK[child+1]<topK[c..
分类:编程语言   时间:2016-06-02 11:41:58    阅读次数:365
C++实现堆
#include<iostream>usingnamespacestd;#include<vector>#include<assert.h>//仿函数template<classT>structLess{ booloperator()(constT&left,constT&right) { returnleft<right; }};template<classT>structGreater{ booloperator()..
分类:编程语言   时间:2016-06-02 00:59:48    阅读次数:230
堆 (数据结构)
堆是什么?是一种特殊的完全二叉树,就像下面这棵树一样。 有没有发现这棵二叉树有一个特点,就是所有父结点都比子结点要小(注意:圆圈里面的数是值,圆圈上面的数是这个结点的编号,此规定仅适用于本节)。符合这样特点的完全二叉树我们称为最小堆。反之,如果所有父结点都比子结点要大,这样的完全二叉树称为最大堆。那这一特性究竟有什么用呢? 假如有14个数分别是99、5、36、7、22、17、4...
分类:其他好文   时间:2016-06-01 16:54:52    阅读次数:315
堆 (数据结构)
堆 (数据结构)[工程下载>>>]  堆(英语:Heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。在队列中,调度程序反复提取队列中第一个作业并运行,因为实际情况中某些时间较短的任务将等待很长时间才能结束,或者某些不短小,但具有重要性的作业,同样应当具有优先权。堆即为解决此类问题设计的一种数据结构。1.1 逻辑定义  n个元素序列{k1,k2…ki…kn},当且...
分类:其他好文   时间:2016-05-26 08:49:19    阅读次数:241
排序算法总结之堆排序
一,堆排序介绍 堆是一个优先级队列,对于大顶堆而言,堆顶元素的权值最大。将 待排序的数组 建堆,然后不断地删除堆顶元素,就实现了排序。关于堆,参考:数据结构--堆的实现之深入分析 下面的堆排序算法将数组中的元素从小到大排序,用大顶堆来实现。 二,堆排序算法分析 现给定了一维数组,需要将数组中的元素使 ...
分类:编程语言   时间:2016-05-24 10:28:01    阅读次数:239
[数据结构] 堆排序
堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值。...
分类:编程语言   时间:2016-05-23 19:15:07    阅读次数:225
常见经典排序算法
插入排序: 算法简介:接插入排序(InsertionSort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。时间复杂度为O(n^2)。最稳定的排序算法但是效率很低 代码实现: voidInsertSort(int*arr,intn) { ..
分类:编程语言   时间:2016-05-18 22:14:03    阅读次数:200
数据结构-----堆的基本操作和应用
(一)用仿函数实现大堆小堆堆数据结构是一种数组对象,它可以被视为一棵完全二叉树结构。堆结构的二叉树存储是最大堆:每个父节点的都大于孩子节点。最小堆:每个父节点的都小于孩子节点。仿函数(functor),就是使一个类的使用看上去象一个函数。其实现就是类中实现一个operat..
分类:其他好文   时间:2016-05-13 05:19:40    阅读次数:179
OI算法汇总[大纲]
1.1 基本数据结构 1. 数组 2. 链表,双向链表 3. 队列,单调队列,双端队列 4. 栈,单调栈 1.2 中级数据结构 1. 堆 2. 并查集与带权并查集 3. hash 表    自然溢出     双hash 1.3 高级数据结构 1. 树状数组 2. 线段树,线段树合并 3. 平衡树    Treap 随...
分类:编程语言   时间:2016-05-12 19:18:55    阅读次数:371
数据结构--二项队列分析及实现
介绍 什么是二项队列,为什么会用到二项队列? 与二叉堆一样,二项队列也是优先级队列的一种实现方式。在 数据结构--堆的实现之深入分析 的末尾 ,简单地比较了一下二叉堆与二项队列。 对于二项队列而言,它可以弥补二叉堆的不足:merge操作的时间复杂度为O(N)。二项队列的merge操作的最坏时间复 bbs.chinaacc.com/forum-2-26/topic-5721391.html bb...
分类:其他好文   时间:2016-05-09 07:06:31    阅读次数:242
182条   上一页 1 ... 8 9 10 11 12 ... 19 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!