一、预备知识—程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其 操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回 收 。 ...
分类:
其他好文 时间:
2016-10-05 12:43:38
阅读次数:
198
1. min/max heap 看到K神马的基本上就是min/max heap. (1) Find the K closest points to the origin in a 2D plane, given an array containing N points. 1 public stati ...
分类:
其他好文 时间:
2016-10-01 14:54:26
阅读次数:
200
Java 中的堆和栈 Java把内存划分成两种:一种是栈内存,一种是堆内存。 1. 栈(stack)与堆(heap)都是Java用来在Ram(随机存取存储器)中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 2. 栈的优势是,存取速度比堆要快,仅次于直接位于CPU ...
分类:
编程语言 时间:
2016-10-01 12:52:16
阅读次数:
189
最近在学习android内核漏洞,写篇博做个记录,也算是所学即用。 https://www.codeaurora.org/multiple-memory-corruption-issues-write-operation-qdsp6v2-voice-service-driver-cve-2016-5 ...
分类:
其他好文 时间:
2016-09-28 22:15:58
阅读次数:
228
学习golang难免需要分析源码包中一些实现,下面就来说说container/heap包的源码 heap的实现使用到了小根堆,下面先对堆做个简单说明 1. 堆概念 堆是一种经过排序的完全二叉树,其中任一非终端节点的数据值均不大于(或不小于)其左孩子和右孩子节点的值。 最大堆和最小堆是二叉堆的两种形式 ...
分类:
其他好文 时间:
2016-09-28 16:05:00
阅读次数:
193
question: You are playing the following Nim Game with your friend: There is a heap of stones on the table, each time one of you take turns to remove 1 ...
分类:
其他好文 时间:
2016-09-26 17:41:52
阅读次数:
134
堆排序的是集合了插入排序的单数组操作,又有归并排序的时间复杂度,完美的结合了2者的优点。 堆的定义 n个元素的序列{k1,k2,…,kn}当且仅当满足下列关系之一时,称之为堆。 情形1:ki <= k2i 且ki <= k2i+1 (最小化堆或小顶堆) 情形2:ki >= k2i 且ki >= k2 ...
分类:
编程语言 时间:
2016-09-25 17:11:02
阅读次数:
253
什么是堆堆(heap),是一类特殊的数据结构的统称。它通常被看作一棵树的数组对象。在队列中,调度程序反复提取队列中的第一个作业并运行,因为实际情况中某些时间较短的任务却可能需要等待很长时间才能开始执行...
分类:
编程语言 时间:
2016-09-25 10:52:56
阅读次数:
192
转载原地址 http://www.cnblogs.com/wangshenhe/archive/2013/02/18/2916275.html [转]C#堆和栈的区别 理解堆与栈对于理解.NET中的内存管理、垃圾回收、错误和异常、调试与日志有很大的帮助。垃圾回收的机制使程序员从复杂的内存管理中解脱出 ...
Implement pow(x, n). 看不动书了,简直已经读不进去!!还剩dp和部分hashtable median没看,有兴致再看吧。马丹书上都没有binomial heap为毛老师会讲这种很难实现的数据结构!! Solution1: 思路:递归。要注意把一半的pow存在一个变量再输出,不然复 ...
分类:
其他好文 时间:
2016-09-21 11:38:58
阅读次数:
131