假设给你40亿个qq号,问你某个qq号是否存在怎么办
假设内存足够,那就放进hashmap就好了,O(1),很快就能查得到
但假设内存不够呢?那我们来想一想除了hashmap还有什么可以O(1)来判断元素的状态。那就是数组,解决方案便是开一个40亿bit的数组,若某个qq号存在则在对应bit上取1,反之取0.数据结构采用byte[]数组,先/8算在哪个byte,再%8算&哪位来求。
去重可以用bitmap,排序也是,当都存进bitmap后,可以从头遍历,因为已经是有序了
假设给你40亿个qq号,问你某个qq号是否存在怎么办
假设内存足够,那就放进hashmap就好了,O(1),很快就能查得到
但假设内存不够呢?那我们来想一想除了hashmap还有什么可以O(1)来判断元素的状态。那就是数组,解决方案便是开一个40亿bit的数组,若某个qq号存在则在对应bit上取1,反之取0.数据结构采用byte[]数组,先/8算在哪个byte,再%8算&哪位来求。
去重可以用bitmap,排序也是,当都存进bitmap后,可以从头遍历,因为已经是有序了