数据结构与算法
文章平均质量分 77
yclzh0522
这个作者很懒,什么都没留下…
展开
-
经典的垃圾回收算法
本文主要关注垃圾回收算法。垃圾回收机制,最早出现于世界上第二元老语言Lisp,Jean E. Sammet曾经说过,Lisp语言最长久的共享之一是一个非语言特征,即代表了系统自动处理内存的方法的术语极其技术——垃圾收集(GC,Garbage Collection)。接下来我们介绍几种经典的垃圾回收算法,这些算法尽管出现于60、70年代,但是现在的CLR、JVM等上面的垃圾回收器,仍然使用了它们。原创 2011-11-17 16:11:49 · 5883 阅读 · 0 评论 -
海量数据处理方法总结
第一部分、十道海量数据处理面试题1、海量日志数据,提取出某日访问百度次数最多的那个IP。 首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法,比如模1000,把整个大文件映射为1000个小文件,再找出每个小文中出现频率最大的IP(可以采用hash_map进行频率统计,然后再找出频率最大的几转载 2011-10-31 17:25:32 · 1227 阅读 · 2 评论 -
Bloom Filter算法及应用
1. 引言问题:有1000瓶药,但是其中有一瓶是有毒的,小白鼠吃了24小时后就会死掉,请问,在24小时找出有毒的药物,最少需要多少只小白鼠?答案是:10只,一只小白鼠可以表示2种状态,2^10可以表示1024种状态分析可参考:http://lzj0470.iteye.com/blog/657579通过二进制向量组来扩展描述的状态,Bloom Filter(BF)算法也是转载 2011-11-22 15:37:11 · 891 阅读 · 0 评论 -
JAVA线程同步锁机制分析
打个比方:一个object就像一个大房子,大门永远打开。房子里有很多房间(也就是方法)。这些房间有上锁的(synchronized方法), 和不上锁之分(普通方法)。房门口放着一把钥匙(key),这把钥匙可以打开所有上锁的房间。另外我把所有想调用该对象方法的线程比喻成想进入这房子某个 房间的人。所有的东西就这么多了,下面我们看看这些东西之间如何作用的。 在此我们先来明确一下我们的前提条件。该转载 2012-02-26 17:40:02 · 10131 阅读 · 1 评论