题目:
100w个数中找出最大的100个。

维护一个100个元素的小根堆即可。

或者直接维护一个用来存储当前最大的100个数的数组,每次把新来的数丢弃或插入到合适的位置。

题目:
海量数据分布在100台电脑中,统计出这批数据的TOP10。
在每台电脑上维护一个10个元素的小根堆,求出top10,然后综合即可

题目:
上千万或上亿数据(有重复),统计其中出现次数最多的前N个数据。
先用hash_map进行次数统计,然后用堆求top N

推荐阅读更多精彩内容

  • 教你如何迅速秒杀掉:99%的海量数据处理面试题 本文经过大量细致的优化后,收录于我的新书《编程之法》第六章中,新书...
    Helen_Cat阅读 6,669评论 0 39
  • 关于最大堆 什么是最大堆和最小堆?最大(小)堆是指在树中,存在一个结点而且该结点有儿子结点,该结点的data域值都...
    凌云壮志几多愁阅读 80,931评论 25 71
  • 介绍 在以往工作或者面试的时候常会碰到一个问题,如何实现海量TopN,就是在一个非常大的结果集里面快速找到最大的前...
    简单方式阅读 3,926评论 6 48
  • 我的心不经意间 就触上会法术的精灵 从此再不能 一支烟半杯茗 青云直上广寒宫 嫦娥回眸意朦胧 更难品三杯酒 两行诗...
    美丽天空一阅读 136评论 8 12
  • 远处山林不可见, 旁之崎岖隐若现。 秋雨成泥难自掩, 无可奈何叹苍天。
    席i阅读 294评论 10 3
  • 我也色,我想吻你,亲你的嘴,一寸一寸的挪移,吮吸你的舌。 我想抱你,抱着你整个心都是满的。我想双手拼圈在你脖子上,...
    古时月白阅读 77评论 0 0
  • xcode中联遍子工程遇到的问题解决 前言 公司要使用容联的IM做即时通讯,打算使用容联的UI组件快速集成群聊界面...
    BlueEagleBoy阅读 220评论 0 0