美文网首页
大数topk

大数topk

作者: couriravant | 来源:发表于2020-01-05 20:12 被阅读0次

    100w个数中找出最大的100个数。

    方案1:

    采用局部淘汰法。选取前100个元素,并排序,记为序列L。然后一次扫描剩余的元素x,与排好序的100个元素中最小的元素比,如果比这个最小的要大,那么把这个最小的元素删除,并把x利用插入排序的思想,插入到序列L中。依次循环,知道扫描了所有的元素。复杂度为O(100w*100)。

    方案2:

    采用快速排序的思想,每次分割之后只考虑比轴大的一部分,知道比轴大的一部分在比100多的时候,采用传统排序算法排序,取前100个。复杂度为O(100w*100)。

    方案3:

    在前面的题中,我们已经提到了,用一个含100个元素的最小堆完成。复杂度为O(100w*lg100)。

    一亿个Ip求Top 10

    可先根据hash%1000将ip分到1000个小文件中去,并保证一种ip只出现在一个文件中,再对每个小文件中的ip进行hashmap计数统计并按数量排序,最后归并或者最小堆依次处理每个小文件的top10以得到最后的结。

    相关文章

      网友评论

          本文标题:大数topk

          本文链接:https://www.haomeiwen.com/subject/pxycactx.html