基本思想 堆排序是一种树形选择排序,是对直接选择排序的改进。 首先,我们来看看什么是堆(heap): (1)堆中某个节点的值总是不大于或不小于其父节点的值; (2)堆总是一棵完全二叉树(Complete Binary Tree)。 完全二叉树是由满二叉树(Full Binary Tree)而引出来的 ...
分类:
编程语言 时间:
2016-11-09 12:45:38
阅读次数:
344
sorted matrix ( Young Matrix ) search for a given value in the matrix: 1) starting from upper-right corner, turn left or turn down, O(n+m) 2) if it's ...
分类:
其他好文 时间:
2016-11-09 11:15:30
阅读次数:
243
知识点:Python中,万物皆对象。 python中不存在所谓的传值调用,一切传递的都是对象的引用,也可以认为是传址。 一、可变对象和不可变对象 Python在heap中分配的对象分成两类:可变对象和不可变对象。所谓可变对象是指,对象的内容可变,而不可变对象是指对象内容不可变。 不可变(immuta ...
分类:
编程语言 时间:
2016-11-08 22:48:06
阅读次数:
321
常见的数据结构有:array,list,stack,deque,binaryTree,hashMap,heap,对于C++而言还有最常用的vector 接着分析每一种的特点: [1] array 内存分配:在内存中分配一段连续的空间; 特点:需要再定义时就知道分配空间的大小; 使用:用于预先就已知需 ...
分类:
其他好文 时间:
2016-11-07 22:18:16
阅读次数:
176
关于堆栈的说明: 1.栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。 2. 堆栈的优劣势 栈: 优势:存取速度比堆要快,仅次于直接位于CPU中的寄存器。栈数据可以共享 缺点:存在栈中的数据大小与生存期必须是 ...
分类:
编程语言 时间:
2016-11-06 13:54:03
阅读次数:
276
完全二叉树之所以用数组的方式存在,在于他的一个特性 若子节点为i,则父节点为(i-1)/2,注意c++特性,该结果肯定是个整数。 若父节点为j,则子节点必为2*j+1;则在数组里面可以非常方便的通过下标去获取。 建堆的核心思想: 堆在index的值为heap[index],然后其两个孩子的值边可求得 ...
分类:
编程语言 时间:
2016-11-04 02:03:53
阅读次数:
249
计算机术语里面堆和栈代表不同的存储结构:stack-栈;heap-堆 所以java虚拟机(JVM)中堆和栈是两种内存 栈:相当于内存指令区 ,存储着基本数据类型, 指令代码,常量,对象的引用地址(基本数据类型包括byte、int、char、long、float、double、boolean和shor ...
分类:
编程语言 时间:
2016-11-03 16:08:43
阅读次数:
237
Write the routines to do a "percolate up" and a "percolate down" in a binary min-heap. Format of functions: where int p is the position of the element ...
分类:
其他好文 时间:
2016-11-01 00:58:40
阅读次数:
204
使用这个jmeter工具测试时,遇到这么个gc错误,网上找到了解决方案。原因是jmeter默认分配内存的参数很小,好像是256M吧。故而解决方法,就是增加内存: 注意,new值必须比heap值要小。 有篇文章,可以参考下,我还没搞明白:http://www.cnblogs.com/jiu0821/p ...
分类:
编程语言 时间:
2016-10-31 13:49:43
阅读次数:
261