我们可以就是借鉴索引这一思想,在磁盘中维护一个B+树索引,然后依次统计每一个数据出现的次数,每一次在内存中遍历到一个数据时都会将他放入到索引中,若是索引中已经存在了,那么就将数量+1,最后我们再维护一个大小为100的小顶堆来找到出现最多的100个。之所以使用索引来存数据是因为我们在遍历到一个数据的时候可以利用索引的快速查找来确定这个数据是否在之前已经出现过了。
我们可以就是借鉴索引这一思想,在磁盘中维护一个B+树索引,然后依次统计每一个数据出现的次数,每一次在内存中遍历到一个数据时都会将他放入到索引中,若是索引中已经存在了,那么就将数量+1,最后我们再维护一个大小为100的小顶堆来找到出现最多的100个。之所以使用索引来存数据是因为我们在遍历到一个数据的时候可以利用索引的快速查找来确定这个数据是否在之前已经出现过了。