原文:海量数据查找最大的前k个数(小顶堆)

在大规模数据处理中,经常会遇到的一类问题:在海量数据中找出出现频率最好的前k个数,或者从海量数据中找出最大的前k个数,这类问题通常被称为top K问题.例如搜索最热门的商品,最活跃的用户. eg:有 亿个浮点数,如果找出期中最大的 个 最容易想到的方法是将数据全部排序,然后在排序后的集合中进行查找,最快的排序算法的时间复杂度一般为O nlogn ,如快速排序。但是在 位的机器上,每个float类 ...

2020-07-17 14:32 0 799 推荐指数:

查看详情

海量数据处理的 Top K算法(问题) 实现

  问题描述:有N(N>>10000)个整数,求出其中的K最大的数。(称作Top k或者Top 10)   问题分析:由于(1)输入的大量数据;(2)只要K个,对整个输入数据的保存和排序是相当的不可取的。         可以利用数据结构的最小堆来处理该问题 ...

Wed Mar 20 23:24:00 CST 2013 4 46219
原创:从海量数据查找k个最小或最大值的算法(java)

现在有这么一道题目:要求从多个的数据查找K个最小或最大值 分析:有多种方案可以实现。一、最容易想到的是先对数据快速排序,然后输出k个数字。              二、先定义容量为k的数组,从源数据中取出k个填充此数组,调整此数组的最大值maxValue到首位,然后对剩下 ...

Wed Mar 09 02:25:00 CST 2016 1 4943
海量数据查找中位数

现在 有10亿个int型的数字(JAVA中 int 型占4B),以及一台可用内存为1GB的机器,如何找出这10亿个数字的中位数? 中位数定义:数字排序之后,位于中间的那个数。比如将10亿个数字进行排序(位置从1到10亿),排序之后,位于第5亿个位置的那个数 就是中位数。 关于中位数 ...

Sun Aug 14 06:34:00 CST 2016 0 13169
python数据结构_大顶

大顶 相关介绍可参看:北京大学空地学院数据结构与算法 第六章 6.8.2.2 小节 代码实现如下 ...

Tue Jul 28 01:10:00 CST 2020 0 760
大顶

大顶:任意非叶子节点的值大于等于其子节点的值。 :任意非叶子节点的值小于等于其子节点的值。 是完全二叉树,所以可以直接用数组存储。 初始化: 的初始化使用筛降法,从最后一个非叶子节点开始向下调整直到跟节点。需要建的数组长度为n,最后一个元素的下标为n-1,其父节点 ...

Wed Apr 01 03:44:00 CST 2020 0 1021
大顶

大顶 本文图片来源:《数据结构与算法》(赵仲孟,张选平,耿彧 ) 这是我当初拍的自己的课本23333,我觉得这部书说说的还挺清楚的,恰巧这个数据结构不太常用,列出来备忘 ...

Tue Mar 10 05:23:00 CST 2020 0 1346
海量数据处理 - 10亿个数中找出最大的10000个数(top K问题)

前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅场的心已经按捺不住了),这个问题还是建立最小堆比较好一些。 先拿10000个数,然后一次添加剩余元素,如果大于的数(10000中最小的),将这个数替换 ...

Sat Feb 16 04:10:00 CST 2019 2 5644
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM