NoSql - SNS

大数据处理。

去蚁坊面试,笔试还简单,不过面试被数据结构和算法给难到了。

作为非计算机专业出生的我,对数据结构没什么概念,应用就更少了。

Hash算法弄不明白。

 

请考虑这样一个问题:

假设现在有上亿个long类型的数据,在没有足够内存的情况下(假设只有512M的内存),如何去重复值?

解:我们可以考虑用BitMap来做这些事,对这些数据进行hash算法,映射到BitMap上。

首先,使用hash值能大大减少数据量,减少内存消耗,其次,对于同样值的数据能映射到BitMap上同一位置来。

考虑到hash算法可能会有重复冲突,应该对数据多做几次hash算法,以减少错误的机率。

 

也不知道描述的对不对,这也不是我自己的想法,有错误的地方还望斧正。

posted on 2013-04-17 17:10  lanfengniao  阅读(121)  评论(0编辑  收藏  举报