heap不属于STL容器,它扮演者priority queue的助手。heap是一种完全二叉树,可由数组来实现,但heap需要动态改变大小,所以最终选择了vector作为底层容器。STL默认提供最大堆。
题外话:分析heap的源码就能清楚的理解堆这种数据结构的例程,而STL库代码的质量又很高,所以看堆的代码,STL源码是一个很好的选择。
为了满足完全二叉树的性质,新插入的元素一...
                            
                            
                                分类:
其他好文   时间:
2014-07-22 23:04:53   
                                阅读次数:
363
                             
                    
                        
                            
                            
                                zb的生日时间限制:3000ms | 
内存限制:65535KB难度:2描述今天是阴历七月初五,acm队员zb的生日。zb正在和C小加、never在武汉集训。他想给这两位兄弟买点什么庆祝生日,经过调查,zb发现C小加和never都很喜欢吃西瓜,而且一吃就是一堆的那种,zb立刻下定决心买了一堆西瓜。当他...
                            
                            
                                分类:
其他好文   时间:
2014-05-01 18:52:01   
                                阅读次数:
290
                             
                    
                        
                            
                            
                                官方地址
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
                             
                    
                        
                            
                            
                                各位勇敢者要玩的第一个游戏是什么呢?很简单,它是这样定义的:
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
                             
                    
                        
                            
                            
                                冒泡排序
思路:就是每次将最大或最小的元素放到数组的最后,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
                             
                    
                        
                            
                            
                                mark笔记,也供别人查阅。
关于traceview的使用有往上一大堆文档,当然最权威可以参考google dev:
http://developer.android.com/tools/debugging/debugging-tracing.html
但是国内文章一大抄一大转载,除了翻译google的原文外,都没有补充操作方式,在使用上很不方便,只能放大时间轴不能缩小,造成没办法回复初...
                            
                            
                                分类:
其他好文   时间:
2014-04-29 13:46:20   
                                阅读次数:
410
                             
                    
                        
                            
                            
                                题意:有n样物品,每样物品价值是v,件数是m。尽量把这些物品分成两堆使得两边总价值最接近。输出分得的两堆各自的价值。
利用母函数法来解决,因为分成两堆,而两堆中较小的一堆最大为所有物品总价值量的一半,所以母函数的组合数上下就可以设置成总价值量的一半。求出所有的组合后,可以利用贪心的思想来得到答案,因为要求两堆之差尽可能小,所以就可以从总价值量的一半开始向小的方向找,找到最大的价值量,则另一堆的价值量就是总价值量-此堆的价值量。因为组合数可能较大,这里不记录组合种数,而是用一个标记来表示该数能否组合出即可。...
                            
                            
                                分类:
其他好文   时间:
2014-04-29 13:42:20   
                                阅读次数:
302
                             
                    
                        
                            
                            
                                在上一篇排序算法的文章中介绍了插入排序,分别为直接插入排序和希尔排序。今天我们继续来介绍其他的排序算法。
1、选择排序:简单选择排序
2、选择排序:堆排序...
                            
                            
                                分类:
其他好文   时间:
2014-04-29 13:36:20   
                                阅读次数:
340