码迷,mamicode.com
首页 >  
搜索关键字:堆 海量数据问题 前k个最大数    ( 25498个结果
顺序容器(幕后英雄) — heap
heap不属于STL容器,它扮演者priority queue的助手。heap是一种完全二叉树,可由数组来实现,但heap需要动态改变大小,所以最终选择了vector作为底层容器。STL默认提供最大堆。 题外话:分析heap的源码就能清楚的理解堆这种数据结构的例程,而STL库代码的质量又很高,所以看堆的代码,STL源码是一个很好的选择。 为了满足完全二叉树的性质,新插入的元素一...
分类:其他好文   时间:2014-07-22 23:04:53    阅读次数:363
ACM zb的生日
zb的生日时间限制:3000ms | 内存限制:65535KB难度:2描述今天是阴历七月初五,acm队员zb的生日。zb正在和C小加、never在武汉集训。他想给这两位兄弟买点什么庆祝生日,经过调查,zb发现C小加和never都很喜欢吃西瓜,而且一吃就是一堆的那种,zb立刻下定决心买了一堆西瓜。当他...
分类:其他好文   时间:2014-05-01 18:52:01    阅读次数:290
java 内存移到堆外!!! Jvm gcih 淘宝优化JVM实践
官方地址 Jvm gcih 出自Jvm 跳转到: 导航, 搜索 目录 [隐藏] 1 GC-Invisible Heap 1.1 什么是GCIH1.2 为什么要用GCIH 1.2.1 GCIH + Hesper + Forest线上测试结果对比 2 GCIH内存共享 2.1 有关GCIH内存共享2.2 GC...
分类:编程语言   时间:2014-05-01 17:39:58    阅读次数:320
HDU 1846 Brave Game (巴什博弈)
各位勇敢者要玩的第一个游戏是什么呢?很简单,它是这样定义的: 1、 本游戏是一个二人游戏; 2、 有一堆石子一共有n个; 3、 两人轮流进行; 4、 每走一步可以取走1…m个石子; 5、 最先取光石子的一方为胜; 如果游戏的双方使用的都是最优策略,请输出哪个人能赢。...
分类:其他好文   时间:2014-04-30 22:44:39    阅读次数:282
经典白话算法之二叉树各种遍历
树形结构是一类重要的非线性数据结构,其中以树和二叉树最为常用。 二叉树是每个结点最多有两个子树的有序树。通常子树的根被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用作二叉查找树和二叉堆或是二叉排序树。二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2的 i -1次方个结点;...
分类:其他好文   时间:2014-04-30 22:44:38    阅读次数:501
经典白话算法之堆排序
前序: (二叉)堆数据结构是一种数组对象,它可以被视为一棵完全二叉树。树中每个节点与数组中存放该节点值的那个元素对应。 树的每一层都是填满的,最后一层除外。 树的根为a[1] (在这里是从1开始的,也可以从0开始),给定了某个节点的下标i,其父节点为i/2,左二子为2*i,右儿子为2*i+1。 二叉堆满足二个特性: 1.父结点的键值总是大于或等于(小于或等于)任何一个...
分类:其他好文   时间:2014-04-30 22:15:38    阅读次数:434
七大排序算法(冒泡,选择,插入,希尔,快速,合并,堆排序)的java实现
冒泡排序 思路:就是每次将最大或最小的元素放到数组的最后,so easy!时间复杂度为(O(n^2)) public class BubbleSort { public static void bubbleSort(int[] a) { for (int j = 1; j < a.length; j++) { for (int i = 0; i < a.length - j; i+...
分类:编程语言   时间:2014-04-30 22:12:40    阅读次数:309
traceview缩小操作
mark笔记,也供别人查阅。 关于traceview的使用有往上一大堆文档,当然最权威可以参考google dev: http://developer.android.com/tools/debugging/debugging-tracing.html 但是国内文章一大抄一大转载,除了翻译google的原文外,都没有补充操作方式,在使用上很不方便,只能放大时间轴不能缩小,造成没办法回复初...
分类:其他好文   时间:2014-04-29 13:46:20    阅读次数:410
HDU 1171 Big Event in HDU (母函数)
题意:有n样物品,每样物品价值是v,件数是m。尽量把这些物品分成两堆使得两边总价值最接近。输出分得的两堆各自的价值。 利用母函数法来解决,因为分成两堆,而两堆中较小的一堆最大为所有物品总价值量的一半,所以母函数的组合数上下就可以设置成总价值量的一半。求出所有的组合后,可以利用贪心的思想来得到答案,因为要求两堆之差尽可能小,所以就可以从总价值量的一半开始向小的方向找,找到最大的价值量,则另一堆的价值量就是总价值量-此堆的价值量。因为组合数可能较大,这里不记录组合种数,而是用一个标记来表示该数能否组合出即可。...
分类:其他好文   时间:2014-04-29 13:42:20    阅读次数:302
排序算法(二)
在上一篇排序算法的文章中介绍了插入排序,分别为直接插入排序和希尔排序。今天我们继续来介绍其他的排序算法。 1、选择排序:简单选择排序 2、选择排序:堆排序...
分类:其他好文   时间:2014-04-29 13:36:20    阅读次数:340
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!