`
shenstone2012
  • 浏览: 18631 次
社区版块
存档分类
最新评论

100亿个数字找出最大的10个

 
阅读更多
1、首先一点,对于海量数据处理,思路基本上是确定的,必须分块处理,然后再合并起来。

2、对于每一块必须找出10个最大的数,因为第一块中10个最大数中的最小的,可能比第二块中10最大数中的最大的还要大。

3、分块处理,再合并。也就是Google MapReduce 的基本思想。Google有很多的服务器,每个服务器又有很多的CPU,因此,100亿个数分成100块,每个服务器处理一块,1亿个数分成100块,每个CPU处理一块。然后再从下往上合并。注意:分块的时候,要保证块与块之间独立,没有依赖关系,否则不能完全并行处理,线程之间要互斥。另外一点,分块处理过程中,不要有副作用,也就是不要修改原数据,否则下次计算结果就不一样了。

4、上面讲了,对于海量数据,使用多个服务器,多个CPU可以并行,显著提高效率。对于单个服务器,单个CPU有没有意义呢?

  也有很大的意义。如果不分块,相当于对100亿个数字遍历,作比较。这中间存在大量的没有必要的比较。可以举个例子说明,全校高一有100个班,我想找出全校前10名的同学,很傻的办法就是,把高一100个班的同学成绩都取出来,作比较,这个比较数据量太大了。应该很容易想到,班里的第11名,不可能是全校的前10名。也就是说,不是班里的前10名,就不可能是全校的前10名。因此,只需要把每个班里的前10取出来,作比较就行了,这样比较的数据量就大大地减少了。
分享到:
评论

相关推荐

    javascript从一亿个数中找出最大的100个 或者n个

    从一亿个数中找出最大的100个 或者n个 用了个堆从一亿个数中找出最大的100个 或者n个 用了个堆

    java一亿数字取前100个(3秒钟获取)

    在这个场景中,我们需要从一亿个数字中快速找出前100个最小的数字。这通常涉及到排序算法和数据结构的运用,以达到在短时间内找到目标结果。以下是实现这个任务的一些关键知识点: 1. **优先队列(Priority Queue)...

    java一亿数字取前100个(3秒钟完毕)

    在这个场景中,我们需要从一个包含一亿个数字的集合中快速找出最大的前100个数字,并要求整个过程在3秒钟内完成。这涉及到算法设计、数据结构优化以及Java性能调优等多方面的知识。 首先,我们可以采用优先队列...

    java一亿数字取前100个(3秒钟获取)Java算法.zip

    在这个场景下,我们需要在包含一亿个数字的集合中找出最大的100个数字,并且要在3秒钟内完成,这对算法的效率提出了极高的要求。 传统的解决方案,如使用冒泡排序或选择排序,时间复杂度至少为O(n^2),对于如此庞大...

    1.5 数的产生、十进制计数法及亿以上数的读写.docx

    而最接近100亿的数,需要将99亿9千万这个数与给定的数字进行比较,找出最接近的组合,即8765300000。 综上所述,理解和掌握数的产生、十进制计数法以及亿以上数的读写,是学习数学和计算机科学的基础,它不仅帮助...

    百度、google海量数据搜索算法题解

    方法2是采用分块策略,比如每100万个数作为一个块,分别找出每个块的最大1万个数,最后再处理剩余的数据找出最大的1万个数。在寻找每个块中第k大的数时,可以利用快速排序的变种,例如“堆排序”或“快速选择”,...

    南城一小六年级数学总复习检测试卷精选.doc

    5. 组合数字:利用给定的数字组合出最大和最小的数,要组成最大的数,需将数字按从大到小排列;反之,组成最小的数,则按从小到大的顺序排列。如3、7、1、5、0、8组成的最大六位数是875310,最小五位数是10357。 6....

    四年级上大数的认识练习题(超经典);.doc

    11. **数的性质**:例如一个四位数,个位数字与百位数字的和为12,十位数字与千位数字的和为9,若个位上和百位上的数字互换,千位上与十位上的数字互换,新数比原数增加2376,通过分析可以找出原数。但此问题的具体...

    复习大数的认识.docx

    10个一万是10万,一百万里面有10个十万,10个一千万是一亿。 - 2. 数字由6个百万、7个万和8个一组成,写作6,070,008,读作六百零七万零八。 - 3. 37286754是7位数,4在万位上,表示4万个,2在十万位上,表示20个...

    2020部编版四年级数学上册第一单元考试题附答案.pdf

    9. **判断题**:涉及到了亿位的概念(1亿包含10个千万或100个百万)、比较数的大小(看最高位不全面)、数位的值(770000中两个7的差值)、多位数的读法(0的读法)以及近似数的估算。 10. **读写题**:要求学生能...

    新人版四年级(上册)单元测试题全套52860.doc

    比较数的大小时,从最高位开始比较,如果最高位相同,则比较下一位,直到找出大小关系。例如,10000 > 9999,因为它们都是五位数,而最高位1大于9。 7. **近似数的界限**: 当一个数省略万位后面的尾数后是4万,...

    人教版小学数学四年级上册期中检测试卷1.doc

    - 通过观察9999乘以1、2、9等的计算结果,找出规律。 12. **数字的读写与排列**: - 如何用给定的数字组合成最大、最小以及特定读法的数。 13. **作图题**: - 画线段、射线和直线的基本操作。 14. **角度计算...

    1小学六年级数学总复习题库(分类).doc

    1. 整数的构成与读法:题目中提到的数如“二十九个亿,四百个万,五个千”,这涉及到亿、万、千等数位的概念,以及如何将这些数值组合成一个完整的数并正确读出。 2. 数位的理解:例如,“600600600”中三个6分别...

    六年级上学期数学期末考试题6.pdf

    5. 互质数与积:互质数指的是两个数的最大公约数为1,小表妹和哥哥的岁数乘积为144,需要找出两个互质的数,它们的乘积是144。 6. 百分数应用:男生占全班人数的74%,女生是男生人数的百分比可以通过全班人数减去...

    新人教版四下小学数学期末测试卷.docx

    4. 时间与速度的理解:比较四位同学100米赛跑的成绩,找出最快和第三快的选手。 5. 三角形边长关系:构建一个三角形需要满足边长条件,给出两根小棒长度后,求第三根小棒的最短和最长长度。 6. 小数的组合与差值:...

    四年级数学上册 第1单元《大数的认识》大数的认识单元综合检测2(无答案) 新人教版 试题.doc

    10. **解决问题**:例如找出四舍五入到万位为40万的最大六位数是404999,最小的是395000。对于算式规律题,可以通过观察前几个例子找到规律,如1111×1111=1234321,11111×11111=123454321,推断出111111×111111的...

    北师大版四年级上册数学整册单元试卷含答案.docx

    - 使用特定的数字卡片(如7,5,4,1,0,0)构建不同类型的数,这涉及到数的组合知识,比如找出最大的五位数、最小的五位数,以及需要读出零的数。 9. **角度与几何概念**: - 1周角等于360度,1平角等于180度,...

    江苏省2022-2022年四年级上学期数学期中试卷(I)卷.doc

    3. 题目要求找出只读一个零的数,根据中文数字的读法,C选项50000005读作五千万零五,符合要求。 4. 题目要求读出数字149600000,正确读法是一亿四千九百六十万,答案为A。 5. 题目比较数的大小,通过比较每个数的...

    VB编程题经典案例.pdf

    通过使用`If...Then`语句,首先比较第一个数`x`与第二个数`y`,然后比较`x`与第三个数`z`,找出最大值并打印。 2. **一元二次方程的实根判断**: 该代码用于判断输入的一元二次方程`ax^2 + bx + c = 0`是否有实根...

Global site tag (gtag.js) - Google Analytics