日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

海量数据处理专题(六)——双层桶划分

發(fā)布時(shí)間:2025/3/17 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 海量数据处理专题(六)——双层桶划分 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

【什么是雙層桶】
事實(shí)上,與其說雙層桶劃分是一種數(shù)據(jù)結(jié)構(gòu),不如說它是一種算法設(shè)計(jì)思想。面對一堆大量的數(shù)據(jù)我們無法處理的時(shí)候,我們可以將其分成一個(gè)個(gè)小的單元,然后根據(jù)一定的策略來處理這些小單元,從而達(dá)到目的。

【適用范圍】
第k大,中位數(shù),不重復(fù)或重復(fù)的數(shù)字

【基本原理及要點(diǎn)】
因?yàn)樵胤秶艽?#xff0c;不能利用直接尋址表,所以通過多次劃分,逐步確定范圍,然后最后在一個(gè)可以接受的范圍內(nèi)進(jìn)行。可以通過多次縮小,雙層只是一個(gè)例子,分治才是其根本(只是“只分不治”)。

【擴(kuò)展】
當(dāng)有時(shí)候需要用一個(gè)小范圍的數(shù)據(jù)來構(gòu)造一個(gè)大數(shù)據(jù),也是可以利用這種思想,相比之下不同的,只是其中的逆過程。

【問題實(shí)例】
1).2.5億個(gè)整數(shù)中找出不重復(fù)的整數(shù)的個(gè)數(shù),內(nèi)存空間不足以容納這2.5億個(gè)整數(shù)。

有點(diǎn)像鴿巢原理,整數(shù)個(gè)數(shù)為2^32,也就是,我們可以將這2^32個(gè)數(shù),劃分為2^8個(gè)區(qū)域(比如用單個(gè)文件代表一個(gè)區(qū)域),然后將數(shù)據(jù)分離到不同的區(qū)域,然后不同的區(qū)域在利用bitmap就可以直接解決了。也就是說只要有足夠的磁盤空間,就可以很方便的解決。 當(dāng)然這個(gè)題也可以用我們前面講過的BitMap方法解決,正所謂條條大道通羅馬~~~

2).5億個(gè)int找它們的中位數(shù)。

這個(gè)例子比上面那個(gè)更明顯。首先我們將int劃分為2^16個(gè)區(qū)域,然后讀取數(shù)據(jù)統(tǒng)計(jì)落到各個(gè)區(qū)域里的數(shù)的個(gè)數(shù),之后我們根據(jù)統(tǒng)計(jì)結(jié)果就可以判斷中位數(shù)落到那個(gè)區(qū)域,同時(shí)知道這個(gè)區(qū)域中的第幾大數(shù)剛好是中位數(shù)。然后第二次掃描我們只統(tǒng)計(jì)落在這個(gè)區(qū)域中的那些數(shù)就可以了。

實(shí)際上,如果不是int是int64,我們可以經(jīng)過3次這樣的劃分即可降低到可以接受的程度。即可以先將int64分成2^24個(gè)區(qū)域,然后確定區(qū)域的第幾 大數(shù),在將該區(qū)域分成2^20個(gè)子區(qū)域,然后確定是子區(qū)域的第幾大數(shù),然后子區(qū)域里的數(shù)的個(gè)數(shù)只有2^20,就可以直接利用direct addr table進(jìn)行統(tǒng)計(jì)了。

3).現(xiàn)在有一個(gè)0-30000的隨機(jī)數(shù)生成器。請根據(jù)這個(gè)隨機(jī)數(shù)生成器,設(shè)計(jì)一個(gè)抽獎(jiǎng)范圍是0-350000×××中獎(jiǎng)號碼列表,其中要包含20000個(gè)中獎(jiǎng)號碼。

這個(gè)題剛好和上面兩個(gè)思想相反,一個(gè)0到3萬的隨機(jī)數(shù)生成器要生成一個(gè)0到35萬的隨機(jī)數(shù)。那么我們完全可以將0-35萬的區(qū)間分成35/3=12個(gè)區(qū)間,然后每個(gè)區(qū)間的長度都小于等于3萬,這樣我們就可以用題目給的隨機(jī)數(shù)生成器來生成了,然后再加上該區(qū)間的基數(shù)。那么要每個(gè)區(qū)間生成多少個(gè)隨機(jī)數(shù)呢?計(jì)算公式就是:區(qū)間長度*隨機(jī)數(shù)密度,在本題目中就是30000*(20000/350000)。最后要注意一點(diǎn),該題目是有隱含條件的:×××,這意味著你生成的隨機(jī)數(shù)里面不能有重復(fù),這也是我為什么用雙層桶劃分思想的另外一個(gè)原因。

轉(zhuǎn)載于:https://blog.51cto.com/rosehacker/751561

總結(jié)

以上是生活随笔為你收集整理的海量数据处理专题(六)——双层桶划分的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 德国性经典xxxx性hd | 手机成人在线 | 手机看片1024欧美 | 五月婷婷六月激情 | 伊伊成人网| 午夜看片福利 | 草草影院在线观看视频 | 色婷婷午夜| 亚洲AV无码成人精品区麻豆 | 浪漫樱花动漫在线观看免费 | 国产日韩在线免费观看 | 国产精品久久久久久久无码 | 中出少妇| 操日韩| 国产精品一区二区欧美 | 中文字幕一区二区久久人妻 | 亚洲最色网站 | 久久av无码精品人妻系列试探 | 国产成人精品久久 | 午夜丰满寂寞少妇精品 | 亚洲图色在线 | 久久成人综合网 | 国产精品久久久久久白浆 | 亚洲天堂影院 | 亚洲图片自拍偷拍区 | 欧美日韩视频在线观看一区 | 又黄又爽又刺激的视频 | 最新色网站 | a级片一区二区 | 奇米一区二区 | 中文字幕爱爱 | 欧美精品一区二区在线播放 | 成年人黄色小视频 | 伊人色播 | 日韩国产91 | 亚洲资源站 | 日韩五十路 | 2017日日夜夜| 91福利视频免费观看 | 久久国产a | 婷婷开心激情 | 在线步兵区| 免费看黄色片的网站 | 天堂av.com | 亚洲蜜臀av | 成人性生交大免费看 | 国产免费av一区二区三区 | 国产成人精品综合在线观看 | 一区二区三区四区国产精品 | 日韩a级黄色片 | 亚洲91av | 欧美精品一二三四 | 麻豆影视免费观看 | 日本人妻换人妻毛片 | 国产91av在线 | 91亚洲国产成人久久精品网站 | 激情婷婷六月 | 亚洲成av人片一区二区 | 国产午夜精品无码一区二区 | 国产成人精品a视频 | 国产熟女高潮一区二区三区 | 亚洲色图偷 | 进去里视频在线观看 | 欧美性视频在线 | 国产亚洲精品aaaaaaa片 | 久操精品在线 | 国产三级精品视频 | 波多野结衣片子 | 国产孕妇一区二区三区 | 人与拘一级a毛片 | 国产一区二区麻豆 | 国产在线视频一区二区 | 人禽高h交 | 特级毛片www | 69社| 成人漫画网站 | 国产精品熟妇人妻g奶一区 a少妇 | 亚洲欧美国产高清 | 日韩欧美视频在线免费观看 | 国产成人午夜精品无码区久久 | 人妻精品一区二区在线 | 午夜伦视频 | 天天看夜夜 | 香蕉视频在线观看网站 | 俺也来俺也去俺也射 | 亚洲精品乱码久久久久久自慰 | 午夜视频色 | 日韩丝袜一区 | 女人叉开腿让男人桶 | 欧美亚洲精品在线观看 | 五月天婷婷在线观看 | 午夜天堂在线 | 日本一级一片免费视频 | 91欧美精品 | 色播基地| 精品无码一区二区三区蜜臀 | 欧美黄色大片网站 | 在线免费观看视频黄 | 成人免费网站在线 |