TopK问题,在海量数据中寻找最大的K项

来源:互联网 发布:ubuntu如何编辑文件 编辑:程序博客网 时间:2024/06/05 15:45

  海量数据都是不能直接存储在内存里的,只能先拿出一小部分放在内存里,再逐渐从内存拿出小的,放入大的。
  处理这样的问题有以下几种方法
  1.用堆排序,用小堆。小堆的堆顶是整个堆中数目最小的。先拿出K个数建立一个小堆,每次拿出一个数与堆顶数据相比,若比堆顶数据大,则将两个数据交换,重新调整堆。保证还是一个小堆。
  2.分治法,将海量数据分成若干份,在每份中找出最大的K个数,再从剩下的数中选取最大的K个数。
  在海量数据中寻找出现次数最多的K项
  第一步:先将所有的内容出现的次数统计一遍,创建类型为pair

原创粉丝点击