NoSql - SNS
大数据处理。
去蚁坊面试,笔试还简单,不过面试被数据结构和算法给难到了。
作为非计算机专业出生的我,对数据结构没什么概念,应用就更少了。
Hash算法弄不明白。
请考虑这样一个问题:
假设现在有上亿个long类型的数据,在没有足够内存的情况下(假设只有512M的内存),如何去重复值?
解:我们可以考虑用BitMap来做这些事,对这些数据进行hash算法,映射到BitMap上。
首先,使用hash值能大大减少数据量,减少内存消耗,其次,对于同样值的数据能映射到BitMap上同一位置来。
考虑到hash算法可能会有重复冲突,应该对数据多做几次hash算法,以减少错误的机率。
也不知道描述的对不对,这也不是我自己的想法,有错误的地方还望斧正。