2. 选择排序—堆排序(Heap Sort)堆排序是一种树形选择排序,是对直接选择排序的有效改进。基本思想:堆的定义如下:具有n个元素的序列(k1,k2,...,kn),当且仅当满足时称之为堆。由堆的定义可以看出,堆顶元素(即第一个元素)为最小项(小顶堆)。若以一维数组存储一个堆,则堆对应一颗完全二...
分类:
编程语言 时间:
2014-11-07 20:44:41
阅读次数:
296
一个由c/C++编译的程序占用的内存分为以下几个部分1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方...
分类:
其他好文 时间:
2014-11-07 20:38:33
阅读次数:
178
网上找到的,对 Windows Heap 有详细的定义。 1 // file winheap.h 2 typedef void VOID; 3 typedef unsigned __int8 UINT8; 4 typedef unsigned __int16 UINT16; 5 type...
http://hi.baidu.com/619195553dream/blog/item/be9f12adc1b5a3e71f17a2e9.html问题描述Exception in thread "main"java.lang.OutOfMemoryError: Java heap space解决方...
分类:
编程语言 时间:
2014-11-07 14:20:19
阅读次数:
231
注:本节主要讨论最大堆(最小堆同理)。
一、堆的概念
堆,又称二叉堆。同二叉查找树一样,堆也有两个性质,即结构性和堆序性。
1、结构性质:
堆是一棵被完全填满的二叉树,有可能的例外是在底层,底层上的元素从左到右填入。这样的树称为完全二叉树(complete binary tree)。下图就是这样一个例子。
对于完全二叉树,有这样一些...
分类:
其他好文 时间:
2014-11-07 13:08:12
阅读次数:
266
堆排序堆排序是直接选择排序的一种改进算法,先将数组调整成一个堆,在将堆第一个元素最小元素和待排序区间最后一个元素交换。重新调整堆,重复执行n - 1次即可得到有序数组具体解释代码注释中有说明,注意完全二叉树的性质如i节点的左子树节点为2 * i是从1开始,不是从0开始。实现的时候需要注意一下Heap...
分类:
编程语言 时间:
2014-11-07 00:53:08
阅读次数:
259
微软在堆中也增加了一些安全校验操作,使得原本是不容易的堆溢出变得困难重重:* PEB Random:在 Windows XP SP2 之后,微软不再使用固定的 PEB 基址 0x7FFDF000,而是使用具有一定随机性的基址,从而影响了 DWORD SHOOT 对 PEB 中函数的攻击。* Safe...
下面是从网上找到的关于堆空间溢出的错误解决的方法:java.lang.OutOfMemoryError: Java heap space ===================================================使用Java程序从数据库中查询大量的数据时出现异常:java...
分类:
编程语言 时间:
2014-11-05 19:26:53
阅读次数:
194
裸的分层图最短路。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define N 51 7 #define K 51 8 #define M 2001 9 struct Point{int u,d;Poi...
分类:
其他好文 时间:
2014-11-05 17:01:57
阅读次数:
274
一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为下面几个部分 1、栈区(stack)— 由编译器自己主动分配释放 ,存放函数的參数值,局部变量的值等。其 操作方式相似于数据结构中的栈。 2、堆区(heap) — 一般由程序猿分配释放, 若程序猿不释放,程序结束时可能由O...
分类:
其他好文 时间:
2014-11-05 16:27:40
阅读次数:
218