作用: 插入元素,O(lgN) 修改元素,O(lgN) 删除元素,O(lgN)
查询元素,O(1) 动态查询最值,O(NlgN)-O(lgN)-O(1) 核心操作: 上浮与下沉 最小堆:上浮是指较小值上浮,下沉是指较大值下沉。
最大堆:上浮是指较大值上浮,下沉是指较小值下沉。 具体操作: 预处理中,...
分类:
其他好文 时间:
2014-05-09 09:38:29
阅读次数:
315
前言
集合是一种数据结构,在编程中是非常重要的。好的程序就是好的数据结构+好的算法。java中为我们实现了曾经在大学学过的数据结构与算法中提到的一些数据结构。如顺序表,链表,栈和堆等。Java
集合框架API是用来表示和操作集合的统一框架,它包含接口,实现类以及一些编程辅助算法。具体位于...
分类:
编程语言 时间:
2014-05-09 08:25:24
阅读次数:
374
基本C/C++、STL(vector、set、map、queue、string、algorithm)枚举、贪心、递归、分治、递推、模拟构造、位运算、常数优化数据结构队列、堆、栈、链表排序(插入、冒泡、快速、归并、堆、桶、基数)二分查找、散列表、并查集、哈夫曼树排序二叉树、左偏树、平衡树(Splay/...
分类:
其他好文 时间:
2014-05-09 08:10:36
阅读次数:
338
堆的删除
按定义,堆中每次都只能删除第0个数据。为了便于重建堆,实际的操作是将最后一个数据的值赋给根结点,然后再从根结点开始进行一次从上向下的调整。调整时先在左右儿子结点中找最小的,如果父结点比这个最小的子结点还小说明不需要调整了,反之将父结点和它交换后再考虑后面的结点。相当于从根结点将一个数据的“下沉”过程。
堆的插入
每次插入都是将新数据放在数组最后。可以发现从这个新...
分类:
其他好文 时间:
2014-05-09 02:16:57
阅读次数:
255
1.垃圾收集算法的核心思想
Java语言建立了垃圾收集机制,用以跟踪正在使用的对象和发现并回收不再使用(引用)的对象。该机制可以有效防范动态内存分配中可能发生的两个危险:因内存垃圾过多而引发的内存耗尽,以及不恰当的内存释放所造成的内存非法引用。
垃圾收集算法的核心思想是:对虚拟机可用内存空间,即堆空间中的对象进行识别,如果对象正在被引用,那么称其为存活对象,反之,如果对象不再被...
分类:
编程语言 时间:
2014-05-09 01:32:44
阅读次数:
569
#include
#include
#define FALSE 0 //函数执行错误返回0
#define TRUE 1 //函数执行正确返回1
//串的堆分配存储表示
typedef struct
{
char *ch;
int length;
}String;
//对串的所有操作都可以通过以下五个基本函数实现
void StrInit(String *);//串的初始化...
分类:
其他好文 时间:
2014-05-09 01:25:02
阅读次数:
294
这几天闲着没事,写了个python爬虫,专把堆糖上的摄影类图片扒下来...
分类:
编程语言 时间:
2014-05-09 01:05:09
阅读次数:
295
fork函数是linux中创建进程的函数,linux创建进程只有用fork,别无他法。我自己写代码fork用的不多,对它的一些细节还不是清楚,今天抽空研究了下fork,把它的一些关键点总结一下,以后用到了自己也好有个参考。1)fork函数会在父进程中创建子进程,子进程的堆,栈,数据段,PC..
分类:
系统相关 时间:
2014-05-09 00:42:46
阅读次数:
600
一、引入类型与值类型简介 值类型:直接存放于栈中,取的时候是直接取得值。(自定义对象)
引用类型:存在于托管堆中,取的时候取的是该对象的地址,然后用这个地址去托管堆中取值。(int,bool)二、在代码上的区别 修改时的区别 代码示例:
static void Main(string[...
分类:
其他好文 时间:
2014-05-08 23:28:29
阅读次数:
344
比较全面的总结了诸多版本,知识无国界,感谢各位的辛勤劳作。
在计算机领域,堆栈是一个不容忽视的概念,我们编写的C/C++语言程序基本上都要用到。但对于很多的初学着来说,堆栈是一个很模糊的概念。
(1) 数据结构的栈和堆
首先在数据结构上要知道堆栈,尽管我们这么称呼它,但实际上堆栈是两种数据结构:堆和栈。
堆和栈都是一种数据项按序排列的数据结构。
栈就像装数据的桶或...
分类:
其他好文 时间:
2014-05-08 17:27:18
阅读次数:
252