摘要: 插入排序原理:假设给数组Array排序 ,从第二个元素开始排序,就假定的条件是待排序的数字的前面所有的元素已经有序!如从第二个元素开始,前面的一个元素一定是有序的。如果第一个元素比第二个元素大,将一后移。借用算法导论书上的图第一次从第二个元素开始,到给下标是N的元素排序的时候,[0....N-1]的元素已经是有序的,这个时候,是从N-1的下标开始比较,如果N-1大于N,就将N-1后移。然后继续比较N-2和N元素的大小,如果还是大于N,N-2后移,到一个不大于N的元素的时候,直接将N的数组赋给改元素的后一个元素。java代码如下public static void insertSort(int 阅读全文
posted @ 2012-06-20 21:56 hadooper 阅读(82) 评论(0) 推荐(0)
摘要: 问题的提出:假设有A,B两个文件,文件里面都是url地址,各有10亿条,如何找出AB两个文件里面都存在的Url。(内存装不下任何一个文件的十分之一) 解决方法:首先在不考虑内存的情况下,我们最传统的方法就是是遍历AB两个文件一个一个的比较,这个方法是能找出结果,但是时间复杂度是o(n2),对于没一个url都要去遍历一遍另外的一个文件。 而Bloom Filter可以解决该问题,同时在时间和空间的开销上都是很小的。原理如下: 1.建立一个byte数组 ,长度为LEN,数组的长度越长发送错误的概率越低 2.读取A的每一个记录,对每一个记录建立一个hash,假设hash值是D ... 阅读全文
posted @ 2012-06-19 14:07 hadooper 阅读(432) 评论(0) 推荐(0)
点击右上角即可分享
微信分享提示