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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

万变不离其宗之海量数据下的算法问题处理思路

發(fā)布時(shí)間:2025/3/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 万变不离其宗之海量数据下的算法问题处理思路 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文介紹 萬變不離其宗之海量數(shù)據(jù)下的算法問題處理思路

萬變不離其宗之海量數(shù)據(jù)下的算法問題處理思路

本文由在當(dāng)?shù)剌^為英俊的男子金天大神原創(chuàng),版權(quán)所有,歡迎轉(zhuǎn)載,但請保留這段版權(quán)信息,多謝合作,有任何疑問歡迎通過微信聯(lián)系我交流:jintianiloveu

海量數(shù)據(jù)下的算法問題

本文開篇就引入了一個(gè)很重要的問題,海量數(shù)據(jù)處理下的算法問題。這個(gè)不管是在求職還是在以后的工作中都是必須會碰到的問題。因此,我在這里單獨(dú)開文一篇為大家講解這一系列問題的緣起緣消。讓大家不至于在海量數(shù)據(jù)中迷失自我。

既然是萬變不離其宗,那么肯定所有的問題都可以追本溯源,返璞歸真為幾類具有共同特性的問題。這里,我們先列舉出來,所有的海量數(shù)據(jù)算法問題,其實(shí)都可以被歸納成為這么幾類:?top K問題,?重復(fù)問題?,?排序問題。這三大問題,來頭可不一般,你能遇到的所有大數(shù)據(jù)海量數(shù)據(jù)問題,不外呼這三類。

先祭大殺器

在正式記錄這三大問題之前,我必須得有必要祭出幾個(gè)大殺器,這些方法在處理大數(shù)據(jù)問題上是通用的,也就是說這些方法都是最基本的套路,但是我盡量不研究的非常復(fù)雜。

位圖法

咋一看,這個(gè)名字很簡單,但是實(shí)際上可不是這樣的,這個(gè)方法的思想非常牛逼。我們從這么一個(gè)問題來看,假如有2.5億個(gè)int的整數(shù),給你一個(gè)整數(shù),讓你來判斷一下,這個(gè)整數(shù)是否在這2.5億個(gè)整數(shù)之中。要求速度盡可能的快,你會怎么辦呢?
很多人會說,我會非常機(jī)智的遍歷一遍這些整數(shù),如果沒有一樣的就不存在如果有就存在。沒錯(cuò),這沒有錯(cuò),但是假如又來了一個(gè)整數(shù),又讓你判斷有沒有在里面,這個(gè)時(shí)候你又得遍歷一遍。這是非常不科學(xué)的做法。這個(gè)時(shí)候我們的位圖法就牛逼的出現(xiàn)了。
位圖法比較適合于判斷是否存在這樣的問題,元素的狀態(tài)比較少,元素的個(gè)數(shù)比較多的情況之下。那么具體咋么做呢,這樣,非常簡單明了就是,2.5億個(gè)整數(shù)里面,我維護(hù)一個(gè)長度等于最大整數(shù)值得字符串,每個(gè)整數(shù)是否存在我就在該整數(shù)對應(yīng)的位置置為1,比如,有{2, 4, 5, 6, 67, 5}這么幾個(gè)整數(shù),我維護(hù)一個(gè) 00…0000 67位的字符串。但是,如果你不知道整數(shù)的最大值,你至少需要一個(gè)長度2^32的字符串,因?yàn)檎麛?shù)的最大值就是2^32,(int占4個(gè)字節(jié),因此是32位),那這就最少是512M內(nèi)存,從char的長度算內(nèi)存會算吧,直接*8/2^20 就是M的單位。那這么說來就可以理解位圖法了。

top K問題

首先讓我們來研究一下top k問題。殺器已經(jīng)寄出,接下來我記錄幾個(gè)經(jīng)典的大數(shù)據(jù)問題:

  • 有1000萬個(gè)身份證號以及他們對應(yīng)的數(shù)據(jù),身份證號可能重復(fù),找出出現(xiàn)次數(shù)最多的身份證號。
  • 有10000000個(gè)記錄,這些查詢串的重復(fù)度比較高,如果除去重復(fù)后,不超過3000000個(gè)。一個(gè)查詢串的重復(fù)度越高,說明查詢它的用戶越多,也就是越熱門。請統(tǒng)計(jì)最熱門的10個(gè)查詢串,要求使用的內(nèi)存不能超過1GB。
  • 有10個(gè)文件,每個(gè)文件1GB,每個(gè)文件的每一行存放的都是用戶的query,每個(gè)文件的query都可能重復(fù)。按照query的頻度排序。
  • 有一個(gè)1GB大小的文件,里面的每一行是一個(gè)詞,詞的大小不超過16個(gè)字節(jié),內(nèi)存限制大小是1MB。返回頻數(shù)最高的100個(gè)詞。
  • 提取某日訪問網(wǎng)站次數(shù)最多的那個(gè)IP。
  • 10億個(gè)整數(shù)找出重復(fù)次數(shù)最多的100個(gè)整數(shù)。
  • 搜索的輸入信息是一個(gè)字符串,統(tǒng)計(jì)300萬條輸入信息中最熱門的前10條,每次輸入的一個(gè)字符串為不超過255B,內(nèi)存使用只有1GB。
  • 這些問題怎么解答,我們一起來慢慢思考吧,先放在這里。

    重復(fù)問題

    重復(fù)問題包括去重,尋找共同的重復(fù)元素,等都是這個(gè)問題。同樣的,這里也先把問題歸并出來:

  • 例如,已知某個(gè)文件內(nèi)包含一些電話號碼,每個(gè)號碼為8位數(shù)字,統(tǒng)計(jì)不同號碼的個(gè)數(shù)。
  • 10億個(gè)正整數(shù),只有1個(gè)數(shù)重復(fù)出現(xiàn)過,要求在O(n)的時(shí)間里找出這個(gè)數(shù)。
  • 給定a、b兩個(gè)文件,各存放50億個(gè)url,每個(gè)url各占用64B,要求在O(n)的時(shí)間里找出a、b文件共同的url。
  • 給40億個(gè)不重復(fù)的unsigned int的整數(shù),沒排過序的,然后再給一個(gè)數(shù),如何快速判斷這個(gè)數(shù)是否在那40億個(gè)數(shù)當(dāng)中?
  • 在這些問題里面,最簡單最重要的就是去重問題,我吃完飯之后繼續(xù)寫。比如給你一個(gè)wifi密碼字典,里面重復(fù)的密碼會大大增加無用功,你得去掉,但是一個(gè)字典少則上萬多則上千億,非常大的數(shù)據(jù),你怎么去重?
    終于吃完飯了,我們繼續(xù)。
    剛才看到了一個(gè)看上去十分可行的方法:

    如果數(shù)據(jù)無法一次性讀入內(nèi)存,那么可以,首先設(shè)定一個(gè)hash函數(shù),把每一行的字符串映射成為一個(gè)0-n(什么函數(shù)這么牛逼請告訴我),然后把文件分拆成為比如500個(gè)小文件,那么重復(fù)的字符串一定在相同的小包中,這個(gè)時(shí)候就可以對每個(gè)小包進(jìn)行去重,方法很簡單,一行命令sort foo1.txt|unique ,對所有的小包去重之后再合并起來就可以得到一個(gè)大文件啦。(話說把所有小文件合并到大文件有簡單的可行方案否?)

    總的來說,解決海量數(shù)據(jù)中的重復(fù)問題無外乎兩大法寶:

  • 分治法,hash到小文件,化整為零,各個(gè)擊破;
  • 位圖法,這個(gè)貌似只適合于整數(shù)場合?比如電話號碼,身份證號之類的?
  • BloomFilter算法這里就不一一介紹了,這個(gè)算法比較高端。
  • 那最后看來,比較可行的還是分而治之比較靠譜一些。

    排序問題

    最后是海量數(shù)據(jù)的排序問題。這個(gè)我就不一一說了。。。
    下一個(gè)博客,我將會實(shí)際的實(shí)戰(zhàn)一下,用這些方法處理實(shí)際的大數(shù)據(jù)問題。

    總結(jié)

    以上是生活随笔為你收集整理的万变不离其宗之海量数据下的算法问题处理思路的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 丁香一区二区三区 | 在线看片成人 | 亚洲天堂视频网 | 国产欲妇 | 五月婷六月 | 丝袜 中出 制服 人妻 美腿 | 三级黄色在线播放 | 天天av天天干 | 欧美另类69xxxx | 亚洲社区在线观看 | 亚洲成av人片在线观看无 | 亚洲老老头同性老头交j | 国产精品国产精品国产 | 欧美人体视频一区二区三区 | 美国av大片 | 看片网址国产福利av中文字幕 | 福利免费观看 | 日韩中文在线观看 | 在线观看深夜视频 | 亚洲最大的黄色网 | 国产免费看黄 | 黑人巨大精品欧美黑寡妇 | 亚洲激情社区 | 91av国产精品 | 日本三级视频在线播放 | 日韩性在线 | 国产精品情侣自拍 | 在线观看黄色的网站 | 午夜精品视频一区二区三区在线看 | 自拍偷拍小视频 | 看片网站在线观看 | 九月婷婷丁香 | 尤物自拍 | 欧美三级一区二区三区 | 欧美日韩a级 | 欧美国产三级 | 色哟哟中文字幕 | 在线观看免费www | 中文字幕无线精品亚洲乱码一区 | 性久久久久久久久久 | av片在线播放| 国产无遮挡呻吟娇喘视频 | 五月激情六月 | 97在线精品视频 | 午夜精品视频一区二区三区在线看 | 欧美成人精品激情在线观看 | 69天堂网| 欧美日韩在线播放视频 | 超碰在线播放97 | 91原创视频 | 国产精品日日做人人爱 | 国产老女人乱淫免费 | 午夜精品网| 女女h百合无遮涩涩漫画软件 | 欧美黄色免费网站 | 91亚色在线观看 | 天天艹夜夜艹 | 先锋影音制服丝袜 | 手机在线一区 | 欧美激情综合色综合啪啪五月 | 91精品国自产在线偷拍蜜桃 | 国产高清精品软件丝瓜软件 | 久久天天东北熟女毛茸茸 | 91xxx在线观看 | 欧美99| av尤物 | 欧美天堂在线视频 | 成人亚洲免费 | 欧美精品123 | 刘亦菲毛片一区二区三区 | 饥渴丰满的少妇喷潮 | 国产精品一区二区免费 | 色香色香欲天天天影视综合网 | 国产良妇出轨视频在线观看 | 中文字幕黄色片 | 亚洲精品电影在线 | 欧美韩日一区二区 | 男女调教视频 | 精品国产一区二区三区日日嗨 | 美女扒开大腿让男人桶 | 亚洲美女屁股眼交3 | 黄在线网站 | 性高潮久久久久久久 | 福利av在线| 波多野结衣亚洲一区二区 | 色哟哟在线观看 | 国产丝袜美女 | 国产免费观看av | 亚洲精品高清在线观看 | 女性女同性aⅴ免费观女性恋 | 午夜精品久久久久久久久久久久久 | 成人激情在线视频 | 四虎影视免费永久大全 | 国产网站黄色 | 俺也去网站 | 涩涩视频网站 | 尤物视频在线免费观看 | 一级片啪啪 | 欧美视频在线不卡 |