堆排序可以作为实时排序,是原址排序,不需要额外的空间,时间复杂度是O(nlgn),最好最坏平均情况都是这个,但是是不稳定排序,下面是C语言实现的代码。。
//为了简化编程,堆数组元素中的第一个位置不使用。
struct heap {
int size;
int *arr;
} h;
void max_heapify(struct heap * h, int p)
{
...
分类:
编程语言 时间:
2015-08-03 01:17:47
阅读次数:
170
GCIH :GC-Invisible Heap,简单说GC管不着的堆。目的:一些对象一量生成,在整个jvm生命周期中不需要被GC回收,比如一个字典映射等一些静态数据。如果生成在常规则的堆中,每次GC都访问操作它们,将给GC带来不必要的负责。另外对于同一物理机器多个jvm进程中如果要共享某些对象,GCIH则可以满足这样的需求。目前一般的jdk并没有提供这个功能,alijdk(开源) 提供了可选的GC...
分类:
其他好文 时间:
2015-08-02 20:07:14
阅读次数:
212
对象内存模型一. 栈(Stack) VS. 堆(heap)栈由系统自动管理,以执行函数为单位空间大小编译时确定(参数+局部变量)函数执行时,系统自动分配一个stack函数执行结束时,系统立即自动回收stack堆在c++中由程序员手动控制手动分配new和malloc手动释放delete和free具有全...
分类:
编程语言 时间:
2015-08-02 13:12:56
阅读次数:
262
在C++中,在heap上分配对象比在stack上分配对象更加昂贵。程序需要找到合适的内存块,再返回内存的地址。但是在Java中垃圾回收器显著地提高了在heap上分配对象的速度。听起来会有些怪,但是这就是Java垃圾回收器工作的方式。而且这意味着Java中在heap上分配对象几乎跟其他语言在stack...
分类:
编程语言 时间:
2015-08-01 12:47:48
阅读次数:
153
1. 每个程序运行时都有属于自己的一段内存空间,参数调用,函数调用。这段空间叫stack(栈)2.所有应用都可以从一个系统共用的空间中申请自己需要的内存。这个空间叫heap(堆)3. JVM自动管理stack和heap不能直接设置stack和heap。4. stack的存取速度比heap要快5. 在...
分类:
编程语言 时间:
2015-07-31 23:21:09
阅读次数:
194
Java里的堆(heap)栈(stack)和方法区(method)基础数据类型直接在栈空间分配, 方法的形式参数,直接在栈空间分配,当方法调用完成后从栈空间回收。 引用数据类型,需要用new来创建,既在栈空间分配一个地址空间,又在堆空间分配对象的类变量 。 方法的引用参数,在栈空间分配一个地址空间,...
分类:
编程语言 时间:
2015-07-31 00:59:30
阅读次数:
175
JVM基础知识:JVM调优工具:1.jmapjmap常用参数命令:jmap -heap PID >> D:\heap.log解释:using thread-local object allocation. --- 使用本机线程分配Mark Sweep Compact GC ...
分类:
其他好文 时间:
2015-07-30 20:55:20
阅读次数:
148
笛卡尔树 POJ ——1785 Binary Search Heap Construction...
分类:
其他好文 时间:
2015-07-30 14:58:34
阅读次数:
202
栈和堆的区别一、程序所占内存分类版本一转于大家论坛C/C++编译的程序占用的内存分类:1、栈区(stack)------由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈(属于后进先出的方式)。2、堆区(heap)------一般由程序员分配释放,若程序员不释放,...
分类:
其他好文 时间:
2015-07-30 11:05:42
阅读次数:
118
valgrind 调试出现如题所示的错误,原因是存取文件名的空间被释放了源代码: cfg->snteam_cfg->snt.score.nd.wrd_dict_db_fn=cfg->wrd_dict_db_fn;修改之后: cfg->snteam_cfg->snt.heap =...
分类:
其他好文 时间:
2015-07-29 13:36:15
阅读次数:
297