当前位置:首页 > 教育 >

中位数是怎么找的(中位数个数多怎么找)

来源:原点资讯(www.yd166.com)时间:2024-05-28 05:41:24作者:YD166手机阅读>>

海量数据里面如何寻找一堆数字的中位数,是一道非常常见的面试题。据称,这个题目是腾讯前首席技术执行官Tony推崇的一个面试题,被加入的腾讯的面试题题库。今天我们就来讨论下这个题目,有一个存放着200亿个数字的文件,存放着32位整型,可能会有重复的数字,现在想从这堆数字中找到他们的中位数。注意,这个题目是只能用单机解决,并且内存只有512M。

中位数是怎么找的,中位数个数多怎么找(1)

我们也简单介绍一下。假如内存足够,我们当然希望在内存里面开一个数组或者一个字典Map,用来保存每一个数字与其出现次数的。可是在这个题目里面,我们并没有那么多的内存可以开辟这么大的内存空间。我们最常见的做法便是分桶算法了。什么是分桶算法呢?

什么是分桶呢?就是把若*数字分到一个桶里面,对外界来说,只关心桶编号。举一个简单的例子,例如数字的范围是1到100万,但是我们只能开范围大小为100的数组,我们一开始先按照1万进行分桶,那么第一个桶就表示1到1万的数字,第二个桶就表示10001

到20000的数字,第三个桶就表示20001到30000的数据。对于外界来说,对于15000这个数字,并不关心他是多少,只关系它在第二个桶,于是把第二个桶的计数器增加一。

中位数是怎么找的,中位数个数多怎么找(2)

接下来我们能做什么呢?我们是不是可以根据这100个桶,统计出中位数在哪一个桶,即便我们并不知道具体数字是多少。接下来,我们就按照100进行分桶,再次缩小中位数的范围,最后我们再按照1进行分桶,就能找到最终的答案。但是今天我们要讨论的,是不能使用分桶算法!

但是这个题目不给使用分桶算法,那么我们就无从下手了么?今天我们来讲一讲,如何使用分治算法,二分法来解决这个题目。

对于大多数人来说,二分法不是用来查找具体的数值的么?怎么还能用来查询中位数了呢?今天我们就来讲讲二分法的妙用。

对于200亿个数字,假如我们假设中位数是100万,如果大于100万的数有50亿个,不就说明了中位数在1到100万之间么?相反,如果大于100万的数字有150亿个,也就说明了中位数大于100万。

假如大于100万的数字有50亿个,那么我们可以再次假设中位数是50万,再次扫描文件,看看大于50万的数字有多少个,假如是70亿个,那么我们再次假设中位数是25万。

按照上述方法,我们每次都用二分法,找到中位数,每次都扫描整个文件,最多需要扫描log(N)次文件。这种方法,对内存的依赖极小,不妨是一个好方法。

中位数是怎么找的,中位数个数多怎么找(3)

最后,除了分桶算法还有二分法,这个题目还有很多种不同的做法,如果你有兴趣,欢迎关注我,后面我们再继续分享这个题目的其他解法。更多这个题目的其他解法,欢迎到我的圈子里面讨论!

,

栏目热文

一盎司等于多少克(1盎司等于31还是28克)

一盎司等于多少克(1盎司等于31还是28克)

来源:人民网-人民日报海外版手掌大小的鱼肉量约等于“一份”“小朋友多吃鱼会变聪明”“孕妇也要吃鱼,对孩子好”——大家都知...

2024-05-28 05:15:25查看全文 >>

一克拉钻石多重(天然钻石一克拉的重量是多少)

一克拉钻石多重(天然钻石一克拉的重量是多少)

克拉(carat)又称卡、卡拉,是宝石的重量单位,符号为Ct,和日常重量单位的换算公式为:1克拉=0.2克。所以一克拉的...

2024-05-28 05:35:31查看全文 >>

闺蜜短句暖心8个字(闺蜜语录简短暖心九字)

闺蜜短句暖心8个字(闺蜜语录简短暖心九字)

嗨!大家好,我是你们的好朋友桃桃今天我想和大家分享一下最暖心的闺蜜情短语TOP10。在人生的道路上,有太多的起伏和曲折,...

2024-05-28 05:03:15查看全文 >>

暖心情话给闺蜜(暖心的情话给闺蜜)

暖心情话给闺蜜(暖心的情话给闺蜜)

1、 当开心、快乐的时候,他们会和你一起“弹冠相庆”,击掌祝贺,和你一起高兴的醉。那些午夜过后仍在街头踉吆五喝六的醉鬼,...

2024-05-28 05:04:36查看全文 >>

吴尊在文莱厉害吗(吴尊在文莱的地位相当于中国的谁)

吴尊在文莱厉害吗(吴尊在文莱的地位相当于中国的谁)

吴尊带着450公斤的行李来中国定居了。吴尊是谁?他家境优越,家族在文莱可谓富甲一方,对孩子的教育十分重视。他曾经打算送家...

2024-05-28 05:20:47查看全文 >>

目前最火的语录短句(个人语录经典短句大全)

目前最火的语录短句(个人语录经典短句大全)

失落时悄悄伸出手和风击个掌。年轻的我们把街灯当作月亮。都是风景,幸会。只有加倍努力,才能做条咸鱼。我们还年轻,长长的人生...

2024-05-28 05:22:44查看全文 >>

人气最旺的短句(最新最火爆的短句子)

人气最旺的短句(最新最火爆的短句子)

一、世上遥远的距离,是碰了杯却碰不到心。二、如果你不能让我喜欢,那么就离我远点。三、爱就刻骨铭心,不爱就各奔东西,不需要...

2024-05-28 05:28:05查看全文 >>

最近很火的39个短句(最近最流行的一段话短句)

最近很火的39个短句(最近最流行的一段话短句)

收罗了一些关于干饭人的经典搞笑语录,让你笑得合不拢嘴的那种。友情提示: 阅读时,请不要喝水1.恋爱可以慢慢谈,肉必须趁热...

2024-05-28 05:10:59查看全文 >>

最火最潮短句(最近特别火的短句)

最火最潮短句(最近特别火的短句)

一、小时候,我以为生活就是:事事如意,年年有余。长大后,我发现生活就是:事事如意料之外,年年有余额不足。二、得不到的就不...

2024-05-28 05:38:17查看全文 >>

最近火的一个短句(最近最火的几首歌)

最近火的一个短句(最近最火的几首歌)

最近非常爆火的一段话,看完瞬间清醒!“如果信菩萨有效果,估计你想去拜佛都没有可能;如果捡垃圾可以赚钱,流浪汉将无没有垃圾...

2024-05-28 05:14:12查看全文 >>

文档排行