g*****e 发帖数: 282 | 1 LRU主要是来做cache的。用在这里的话就只能求出近似解了。而且维护LRU的数据结构
本来是heap或者sorted tree吧?
主要是维护这个heap得保存k时间里面的所有出现过的ip addr,差不多就是随时间推移
不断地在reconstruct这个heap。否则我觉得用heap已经很不错了。 |
|
s*******t 发帖数: 248 | 2 for the min-max heap. I don't think it is easy to implement during interview
.
However, maintain a min heap and a max heap will be easier, but the running
time will be nlog(n), since inserting an item into a heap is log(n). I guess
it is more suitable for streaming data. |
|
G***n 发帖数: 877 | 3 刚刚结束,一肚子气。一个印度人,态度很不好。可
以说是比较恶劣。
先是迟到了15分钟,11:15来电话,然后按照
12:00准时结束。
先花了15分钟让我给他讲我的research,竟问些无
关紧要的问题。我说我做的machine learning的
算法对有的东西效果好,有的效果不好。他就问对哪
些效果好,我举例子说a,b,c...。他就接着问a是
啥,b是啥,我解释了半天。他说ok, let's move
on, we don't have enough time.我无语。
接着就问了一个简单的题目,有K个link list,每
个link list有N个元素,每个link list都
sorted过了。问有什么方法可以merge K lists
into a single list?
我想这题简单,不就是merge sort吗,于是给了个
算法循环merge every 2 lists,then 4
lists,.... 复杂度NKlog(K)。没等我说完,他
说你要用heap来做。
然后我给他讲heap的算法,先让point to the
first element of ea... 阅读全帖 |
|
G***n 发帖数: 877 | 4 我没有讲heap的工作原理,算法用到heap.pop,但treat y as a new x,是因为每次都
把heap的top给pop出来,然后往heap插入的新元素是Link list上的y,这时把y当成了
下一个要处理的数据x. |
|
l*****g 发帖数: 685 | 5 用doubly linked list + hashtable, 找时间最久的object和任意一个object, 时间都
是O(1)
用min-heap当然也可以,不过你得给每个object加额外的timestamp,需要对timestamp
做很多比较操作
另外,因为min-heap里的element的index一直在变动,而hashtable却需要存比较固定
的index(或reference)来search, 所以这个min-heap不适合用常用的array来implement
;而只能用tree来implement;那样,跟doubly linked list相比就更没有优势,因为
min-heap的tree node需要保存
3个指针(left, right, parent).
综合起来,还是doubly linked list简单的多 |
|
F**********r 发帖数: 237 | 6 这回这个问题可能和具体实现有关,就是k-way merge。
1)首先如果能够全部load进内存,是不是其实最好就是依序把它们放进连续内存,然
后直接sort。O(nlogn)
如果用heap的话,要么就是heap的每个element要有data+index(2.1),要么就是要有一
个size k的array存放每个array的active index,但是要决定具体要advance which
array的时候,worst case要把size k array所指向的element和heap top比较一次(2.2
):这本身复杂度就是k*n了。。。。另外虽然heap move down直接成堆复杂度是O(n),
但并不适用在这个case。也就是说用堆的话复杂度是O(nlogk)+ 更多内存 或者 O(n*k
).
这个理解对么?大家怎么看? |
|
e******s 发帖数: 38 | 7 Two reverse sorted arrays A and B have been given, such that size of A is m
and size of B is n
You need to find the k th largest sum (a+b) where a is taken from A and b is
taken from B.
看了好多论坛上的答案,好像都不是很清楚。 有一个用max-heap做的,就是每次从
heap里pop出一个
pair(a[i]+b[j]),然后将 pair(a[i],b[j+1]) 和pair(a[i+1],b[j]) insert到heap里。
但好像需要check是不是重复的pair(a[i],b[j])已经在heap里了。 不知道有没有人有
更清楚的解
法,多谢。 |
|
g*****i 发帖数: 19 | 8 据我所知,用max-heap做的办法(klgn) 是最efficient 办法了。为避免重复,必须用
个变量J-Max track 目前max-heap中所有pair的最大的j. 如果j < J_Max, insert
pair(a[i+1],b[j])到heap里; 如果j = J_Max, 将 pair(a[i],b[j+1]) 和pair(a[i+1
],b[j]) insert到heap里, update as J_Max = J_Max+1.
m
is
里。 |
|
r*******g 发帖数: 1335 | 9 这个题最难弄的地方是,从2^l*3^m*5^n到2^(l+1)*3^(m+1)*5^(n+1)之间有很多数,有
的数其指数可能不是在l和l+1之间。所以,即使把很多数放入heap,也需要考虑清楚到
底哪些放入heap。
我能想到的就是我第一个帖子说的,每次对前面一段数做变化,假设目前这段是从A到B
,对每个数乘以2或者3或者5,如果超过了B,就把变化后的数放进heap。注意这个A和B
是变化的,我在第一个帖子说了的。
这样做的话,一次会存入很多数进入heap,每次B向后一定一个数,A也向后移动。
problem they are |
|
d*******d 发帖数: 2050 | 10 9. How the OS implements malloc? What's heap? why is it called heap? (
Actually it's implemented with a heap data structure.)
真的么?我考古了半天,好像真的没啥关系啊.也许最早的用了heap,现在的不见得是吧.
迎大 |
|
z****u 发帖数: 104 | 11 感觉和 LRU 很像,不过 LRU 是记录每个元素出现的先后,这个是元素出现的次数
用 hash + heap
hash 用来 O(1) access 对应的地址;按照出现次数来维护 heap。
每次 push 和 pop 的时候需要对他在 heap 中的 node 做up-heapify 或 down-
heapify,心元素的话就是 heap 的 insert,最坏情况都是 O(lgn)
top 是 O(1)
functions |
|
r*******g 发帖数: 1335 | 12 越来越看不懂了,我原以为会有三面的。
第一面,一些基本数据结构的题目,然后是那个经典的100000000个数中间找最小的100
个的题目。我说要么基于quick sort思想做,要么用heap。结果讨论半天基于quick
sort的开销,交流有些不顺畅,有个地方没明白他想说什么,结果发现他理解错了基于
quick sort具体怎么做,后来我发现cracking code interview上也说基于quick sort
的开销不好估计。而且比较崩溃的是他说用min heap,找100个最小的那应该用max
heap啊,然后面试完了我还发信解释了一下应该max heap。虽然有点交流不顺畅,最后
感觉还是很好的。
第二面,有个地方也是交流了半天,我的code里面用了hash,我直接用的map,他问我c
++ STL map::find()==map::end()是什么意思,我就给他说是iterator,对binary
search tree来说应该是最后一个之后的位置,不知道这个回答对不对,期间没有任何
提示,甚至给我感觉是他不用map。接着是reverse linked list,我很... 阅读全帖 |
|
i*******n 发帖数: 401 | 13 method 1: keep a balanced binary search tree
method 2(theoretically work): keep a min heap, a max heap, keep it balanced
and all elements in min heap > all elements in max heap (tricky to solve
this, still figuring out)
Welcome to discuss an efficient way ha~ |
|
c*******a 发帖数: 35 | 14 从每个array里每次读一个数出来,建立一个min heap,每次取出heap的root,也就是
最小的,从这个root元素所在的array再取下一个元素,插入到heap中,直到找到第kth
个数。因此heap总是保持32个元素。 |
|
g****y 发帖数: 240 | 15 用一个min-heap。
刚开始min-heap里面是左上角的值。
每次动min-heap里面pop出一个最小值来,把这个最小值的右边和下边的值push到min-
heap里面去。
pop出来的第k个值就是最小值。 |
|
O******i 发帖数: 269 | 16 又是不到两个小时的onsite,估计挂了。
本来是一个白人小兵,问了三道简单的C++题目,在白板上写,他说不错。突然又有一
个人敲门,进来一个亚裔小兵,噩梦开始了。亚裔问如何设计优先队列,我说了用heap
, 他说他不懂什么是heap,还以为我说的是C++用new时候的分配。我说了是数组表示二
叉树,对他的例子都做了heap的heapify操作。然后他说我用heap这个太复杂,他的方
法好像就是用数组来实现,晕。而且他看了板上我画的用来表示堆的树,还以为是BST.
.. |
|
s********x 发帖数: 914 | 17 那我写一下吧
public static Node mergeKSortedLists(Node[] l) {
// heapify: Make it a heap: Trickling Down in Place: start at node n
/2-1, the rightmost node with children
// O(n)
for (int i = (l.length / 2 - 1); i >= 0; i--)
trickleDown(l, i, l.length);
int heapSize = l.length; // size of the heap
// use an extra dummy node as the head
Node dummy = new Node();
Node pre = dummy;
while (heapSize > 0) {... 阅读全帖 |
|
m****i 发帖数: 15 | 18 找工作期间在本版潜水两个月,收益良多,发一下最近面经和经验作为回馈。
本人背景:美国不错学校电子PHD即将毕业,专业是EDA做电路设计算法优化。因为EDA
已经是一个很稳定的工业,没什么太大的前景,随想转到前沿的tech公司。本专业只投
了一家现在最大的公司,拿到offer。别的投了Google, Facebook, Rocket fuel,
Twitter, Linkedin, Yahoo, Amazon, Box, Oracle. 除了box别的都找人refer了, 在
此感谢板上大哥们的热情帮忙. 除了GFR别的都没理我,可能背景差太大了。
因为之前是学算法的,mit算法书以前就看过两遍,基础还可以,前期8月份刷了遍
leetcode。然后9月初投出简历。两个星期刷Career cup 150, 最后面试期间一直查缺
补漏。到现在尘埃落定大概两个月。 最后GFR全挂,总结下惨痛经历:
1. Facebook电面
面试官做distributed cache infrastructure的,先问我最难的project,没怎么好好
准备过behavior,胡乱说了一通。但是因为做的是电... 阅读全帖 |
|
m****i 发帖数: 15 | 19 找工作期间在本版潜水两个月,收益良多,发一下最近面经和经验作为回馈。
本人背景:美国不错学校电子PHD即将毕业,专业是EDA做电路设计算法优化。因为EDA
已经是一个很稳定的工业,没什么太大的前景,随想转到前沿的tech公司。本专业只投
了一家现在最大的公司,拿到offer。别的投了Google, Facebook, Rocket fuel,
Twitter, Linkedin, Yahoo, Amazon, Box, Oracle. 除了box别的都找人refer了, 在
此感谢板上大哥们的热情帮忙. 除了GFR别的都没理我,可能背景差太大了。
因为之前是学算法的,mit算法书以前就看过两遍,基础还可以,前期8月份刷了遍
leetcode。然后9月初投出简历。两个星期刷Career cup 150, 最后面试期间一直查缺
补漏。到现在尘埃落定大概两个月。 最后GFR全挂,总结下惨痛经历:
1. Facebook电面
面试官做distributed cache infrastructure的,先问我最难的project,没怎么好好
准备过behavior,胡乱说了一通。但是因为做的是电... 阅读全帖 |
|
c**y 发帖数: 172 | 20 The revised algorithm above follows the approach used in building a heap,
which consists of two parts: BUILD-MAX-HEAP (see page 157 of CLRC, 3rd
edition) and MAX-HEAPIFY (see page 154 of the same book).
The MAX-HEAPIFY algorithm is a recursive solution in that it calls itself
again in the pushdown part. Similarly, heapify is directly called by itself
in the above solution.
BUILD-MAX-HEAP restores the heap property in a bottom-up fashion.
Correspondingly, post-order is used to achieve the same bo... 阅读全帖 |
|
c**y 发帖数: 172 | 21 The revised algorithm above follows the approach used in building a heap,
which consists of two parts: BUILD-MAX-HEAP (see page 157 of CLRC, 3rd
edition) and MAX-HEAPIFY (see page 154 of the same book).
The MAX-HEAPIFY algorithm is a recursive solution in that it calls itself
again in the pushdown part. Similarly, heapify is directly called by itself
in the above solution.
BUILD-MAX-HEAP restores the heap property in a bottom-up fashion.
Correspondingly, post-order is used to achieve the same bo... 阅读全帖 |
|
p*****2 发帖数: 21240 | 22 好多人问,我就发到这里吧。
面试题的构成和分类
首先声明一下,这里的面试题主要所指数据结构和算法的题目,题目的分析集中在
Leetcode上面的题目上。
我认为一道面试题由以下几个方面组成的
Question
Data structure in question
Data structure in solution
Algorithm in solution
Coding
题目:非常关键,一个题目通常有一些相应的变形题目,同一个题目可能有不同的要求
。比如时间复杂度,空间复杂度的要求,比如recursive,
iterative的要求。而根据题目的变形与要求,可能会极大的影响到你能够采取的数据
结构和算法。
问题中的数据机构:问题中有可能带数据结构,有可能没有数据结构,有可能是可以自
定义数据结构
解决方案中的数据结构:可以是in-place的,也就是利用已有的数据结构,也可能是创
建新的数据结构。新的数据结构跟已有的数据结构没有必然的联系,而很多问题都是一
题多解,可能采取不同的数据结构。
算法:一般来说,当解决方案中的数据结构确定以后,算法也就确定了。同样,一旦解
决方案的算法确定... 阅读全帖 |
|
p*****2 发帖数: 21240 | 23 好多人问,我就发到这里吧。
面试题的构成和分类
首先声明一下,这里的面试题主要所指数据结构和算法的题目,题目的分析集中在
Leetcode上面的题目上。
我认为一道面试题由以下几个方面组成的
Question
Data structure in question
Data structure in solution
Algorithm in solution
Coding
题目:非常关键,一个题目通常有一些相应的变形题目,同一个题目可能有不同的要求
。比如时间复杂度,空间复杂度的要求,比如recursive,
iterative的要求。而根据题目的变形与要求,可能会极大的影响到你能够采取的数据
结构和算法。
问题中的数据机构:问题中有可能带数据结构,有可能没有数据结构,有可能是可以自
定义数据结构
解决方案中的数据结构:可以是in-place的,也就是利用已有的数据结构,也可能是创
建新的数据结构。新的数据结构跟已有的数据结构没有必然的联系,而很多问题都是一
题多解,可能采取不同的数据结构。
算法:一般来说,当解决方案中的数据结构确定以后,算法也就确定了。同样,一旦解
决方案的算法确定... 阅读全帖 |
|
z****e 发帖数: 54598 | 24 就是要放到heap去,stack是珍惜资源,远比heap珍贵
gc时候基本上都是扫描stack,而不是heap
时间复杂度如果对方问到这一步了
正好扯一下amortised complexity这个概念
heap |
|
b*****c 发帖数: 1103 | 25 一个hashmap,一个size=10 min-heap,一个max-heap
hashmap存exception pointer, moving window,出列时该exception 计数减一,
入列类似。
维持min-heap里的exception永远大于max-heap |
|
g****s 发帖数: 1755 | 26 UP楼上, :)
第一题算是KMP/heap sort; 建一个容纳K个数的Heap,遍历数组,遇到某个值小于Heap
目前最大值的和时候update heap;一次遍历就可以了。
第二题Leetcode原题:两个hashMap 一个toFind() 一个alreadyFound; 再建个Queue存
储string里每个在alphabet里的字符对应的index; alreadyFound找到满足每个
alphabet出现次数的时候,从queue里poll()出此次subString的超始点。时间上一次遍
历就结束了O(n)。 |
|
m*****n 发帖数: 2152 | 27 这道题很简单啊。
建一个二维histogram, x axis用IP分bin (可以每个country一个bin),y axis用
URL的hash value分bin。
然后顺序读入所有数据, fill 相对应的bin。内存绝对够用。
然后把histogram projection到x axis,建个10位的heap,用heap sort,搞定(1).
然后把histogram projection到y axis,建个10位的heap,用heap sort,搞定(2). |
|
o***g 发帖数: 2784 | 28 大牛,给我讲讲啥事min heap啥是max heap呗
为啥这里需要用min heap,不能用max heap呢?
情况 |
|
p********n 发帖数: 165 | 29 max heap 有max heap的做法
min heap 有min heap的做法,最终复杂度差不多,决定于k 和n的关系。。。
光刷leetcode是不行的。 |
|
z*******3 发帖数: 13709 | 30 不过min heap还是max heap真心不重要
你就是做成min&max heap又怎样?两头都能pop就好了
能pop最小也能pop最大的,反正insert效率都是一样的
这只是定义,对方的理解是把min想成你存最小值了
就象空穴来风,明明文字上意思是言之有据
但是无数人认为这个是扯蛋的意思
纠结这个就有些书呆了,无所谓,互相理解一下
如果你想结合理论的话,pirorityqueue就是基于heap的实现
这个是我从swjtuer那边偷来的
多线程对方考点还真的不是fairness strategy
对方其实目的很简单,就想知道你知道不知道最常用的core java类是什么
inverted index那题估计也不是纯粹考理论,应该是希望看到类似半海那种答案
半海遇到过类似的问题,问的是distributed lock
半海答案很简单,用zookeeper
就过了 |
|
p*****e 发帖数: 537 | 31 哦~是了是了,老印和国男一定想的是max value heap,所以他们一再坚持用min heap
(估计他们想的是min value heap)是错的!
当时有点愣,就光顾想为啥他们说min heap不对了,没反应过来这个啊!要是能想到赵
策兄说的这一点就好了! |
|
o***g 发帖数: 2784 | 32 大牛,给我讲讲啥事min heap啥是max heap呗
为啥这里需要用min heap,不能用max heap呢?
情况 |
|
p********n 发帖数: 165 | 33 max heap 有max heap的做法
min heap 有min heap的做法,最终复杂度差不多,决定于k 和n的关系。。。
光刷leetcode是不行的。 |
|
z*******3 发帖数: 13709 | 34 不过min heap还是max heap真心不重要
你就是做成min&max heap又怎样?两头都能pop就好了
能pop最小也能pop最大的,反正insert效率都是一样的
这只是定义,对方的理解是把min想成你存最小值了
就象空穴来风,明明文字上意思是言之有据
但是无数人认为这个是扯蛋的意思
纠结这个就有些书呆了,无所谓,互相理解一下
如果你想结合理论的话,pirorityqueue就是基于heap的实现
这个是我从swjtuer那边偷来的
多线程对方考点还真的不是fairness strategy
对方其实目的很简单,就想知道你知道不知道最常用的core java类是什么
inverted index那题估计也不是纯粹考理论,应该是希望看到类似半海那种答案
半海遇到过类似的问题,问的是distributed lock
半海答案很简单,用zookeeper
就过了 |
|
p*****e 发帖数: 537 | 35 哦~是了是了,老印和国男一定想的是max value heap,所以他们一再坚持用min heap
(估计他们想的是min value heap)是错的!
当时有点愣,就光顾想为啥他们说min heap不对了,没反应过来这个啊!要是能想到赵
策兄说的这一点就好了! |
|
i*******t 发帖数: 79 | 36 为什么是min heap不是max?
arraylist存(keyword,time,count, heap1 node, heap2 node)
hashmap存(keyword,index),或者用trie存index
一个max heap放index,以count为比较值
第二个max heap放index,以time为比较值。
每次接到一个keyword,更新这4个数据结构(先用trie或者map找到index)
每次调用的时候或者hashmap一定大的时候按照第二个heap,去掉所有的超时元素,更
新4个数据结构 |
|
d****n 发帖数: 397 | 37 用两个heap.一个max heap,一个min heap, maxheap size = min heap size 或者
maxheap size = minheapsize + 1.
java implementation
public class Solution {
/**
* @param nums: A list of integers.
* @return: the median of numbers
*/
public int[] medianII(int[] nums) {
// write your code here
PriorityQueue pmin = new PriorityQueue ();
PriorityQueue pmax = new PriorityQueue (10, new
MaxComparator());
int i, l = nums.l... 阅读全帖 |
|
b**********5 发帖数: 7881 | 38 我也觉得奇怪了, k大, 用heap写, 一定要用k size么??! 凭什么?! 是因为大
多数人都用k size heap写???! 你没见过用k+1 size heap写的??! 在CS
industry里, 你就是这么对待新事物的????!
我不觉得奇怪,其实我也没看见过k+1 size heap写, 但我想了一分钟, 就想通了。
。。 这有什么难想通的??! |
|
l*******e 发帖数: 127 | 39 写了一下第三题,基本思路是类似于sweep-line算法,用一个max heap保持当前权重最
高的alarm,按照时间顺序扫描, 碰到alarm start event, add alarm to the heap,
for alarm end event,
remove the alarm from the heap. keep track the top of the heap, which
should be kept.
public class WeightedInterval {
public List removeAlarms(List alarms)
{
SortedMap> times = new TreeMap<>();
for(Alarm alarm : alarms)
{
if(!times.containsKey(alarm.start)) times.put(alarm.start, new
Array... 阅读全帖 |
|
发帖数: 1 | 40 Priority Queue就是有Priority的Queue(废话)。它是Heap在Java语言里的具体实现
。不同语言里对Heap的实现类名不同,也稍有区别。在C#里,类似的是
SortedDictionary(Dictionary是类似Java里的HashMap)。在JavaScript里,就要自己
实现或用第三方的库了。比如http://www.collectionsjs.com/heap
Java里如果不是让你自己实现PriorityQueue的话,直接拿来用就可以了。它默认实现
了最小堆,如果要用最大堆,需要定义一个Comparator,实现compare方法。如果自己
实现的话,实现的方式可以有很多种。具体就看看Heap的定义吧。 |
|
s*****h 发帖数: 44903 | 41 ☆─────────────────────────────────────☆
RW3 (RW3) 于 (Thu Oct 3 13:15:22 2013, 美东) 提到:
今天上午听radio在讨论这个话题,觉得很有意思。大家的意见呢?
Will you trade RW for luck now?
☆─────────────────────────────────────☆
devince (布哥) 于 (Thu Oct 3 13:17:02 2013, 美东) 提到:
只要扣子肯 sure...
不过我觉得这话题毫无意义
也就西雅图会讨论
☆─────────────────────────────────────☆
pangpangzeng (胖胖) 于 (Thu Oct 3 13:20:37 2013, 美东) 提到:
Probably not.
Your build your team based on your Franchise QBs.
☆─────────────────────────────────────☆
fran... 阅读全帖 |
|
b*****n 发帖数: 2324 | 42 CLR via C#说C++ developer不能控制object放在heap还是stack上是胡说吧。
按照C++的做法new的就在heap上不是很好嘛,new int也在heap上。
按照C#,要想create在heap上的int,要:
int x;
object o = x;
必须要copy上去,而且boxed object又多了两个overhead fields。
C#这个设计算不算一个地道败笔。 |
|
m******k 发帖数: 43 | 43 I mean a min-heap of size 10 store top 10 most frequence words on the fly.
because we need to compare other candidates with the least frequent one of
the top 10 to determine whether do a replcaement. Other operation on the min
-heap includes increase_key if anyone of the current top 10 get hit again.
of course, a max-heap also works, but it seems you need to store the entire
N elements to determine the top 10.
I guess u mean max heap to store frequency, right?
frequnecy
store |
|
s***e 发帖数: 793 | 44 可以呀,
assume u have m sorted arrays with n total elements.
1: make a heap of size(m), and first put all the first of the m array in it.
2: then remove the smallest from the heap,and u need to know where the
smallest come from. so the heap element need to be a pair of value and array
index. Then add the next element in the sorted array of the removed element
if there is one.
doing step 2 until the heap is empty.
the key is that for sorted arrays, u only need to compare the smallest
element of all |
|
b***y 发帖数: 2799 | 45 ☆─────────────────────────────────────☆
wmbyhh (wmbyhh) 于 (Sun Jun 29 23:05:45 2008) 提到:
报错: error LNK2001: unresolved external symbol "public: static int
HeapSort::heap_size" (?heap_size@HeapSort@@2HA)
error LNK2001: unresolved external symbol "public: static int * HeapSort::heap" (?heap@HeapSort@@2PAHA)
----------------------
class HeapSort
{
public:
static int heap_size;
static int heap[MAX_HEAP]; //define an array of the heap
public:
HeapSort(void);
static void AddNu |
|
t****t 发帖数: 6806 | 46 below was one of my previous post. to make it clear, i was being sarcastic
by saying you have a novel algorithm; you don't have a novel algorithm, you
have a wrong algorithm. when we said we want to use heap to find 5 max
number, we meant to use a heap of N, not heap of 5.
发信人: thrust (祝阳阳早日康复), 信区: Programming
标 题: Re: N个数字里面找出最大的5个数字的复杂度是什么?O(N)?
发信站: BBS 未名空间站 (Mon Jan 24 20:22:51 2011, 美东)
oh i got it, you thought we build a heap of 5 and repeatly insert into it?
that's really a novel way o... 阅读全帖 |
|
t****t 发帖数: 6806 | 47 also remember to compare first...i.e.
if (new_element>heap.front()) {
heap.back()=new_element;
pop_heap(heap.begin(), heap.end());
} |
|
d******i 发帖数: 7160 | 48 Actually I tried some similar before like this.
None of them works. b/c pop_heap ask for the whole range it operates (
defined by the parameter) is a PRE-EXISTING heap.
But the newly assigned back "heap.back()" apparantly breaks that pre-
existing heap-order. As thus, the following pop-heap won't work correctly,
though it will still do something :(
It's not hard to prove, and I did have verified. |
|
d*******r 发帖数: 3299 | 49 有人用过 Hazelcast 吗? ( https://github.com/hazelcast/hazelcast )
看着很适合做 real time system. 我觉得可以理解为 JVM 版本的, 带 Cluster 模式
的 Redis.
比 memcached 功能强,
比 Redis,有 Cluster 功能,
我在网上跟他们 marketing guys 瞎扯了一会儿,他们说,现在有 4000+ companies
在 production 中使用了。比如 Apple, Cisco ,Ericsson, Hsbc, Morgan Stanley,
American express, AT&T
比如,Apple store 就有 600 多个 nodes 在跑 Hazelcast.
Hazelcast 支持的数据结构,比如分布式map, queue,用起来很简单的样子:
http://www.hazelcast.org/getting-started
Spring 的作者 Rod Johnson 也加入了 Hazelcast:
http://www.hazelcast... 阅读全帖 |
|
G***l 发帖数: 355 | 50 很规则,不过你要明白这个规则,也就两句话。
1.在stack上的object在out of scope的时候自动清除。
2.在heap上的object在out of scope时候不会清理,需要手动delete。
Java的规则是
1.在stack上的object在out of scope的时候自动清除。
2.在heap上的object在out of scope时候不会清理,GC会在下次collect的时候清理。
不过Java只有基本类型才能放在stack上,其他只能通过new放在heap上。c++所有的类
型,既可以通过new放在heap上,也可以直接放在stack上。 |
|