海量資料問題

2022-08-25 18:00:45 字數 774 閱讀 9731

在海量資料中查詢出重複出現的元素或者去除重複出現的元素也是常考的問題。針對此類問題,一般可以通過位圖法實現。例如,已知某個檔案內包含一些**號碼,每個號碼為8位數字,統計不同號碼的個數。

本題最好的解決方法是通過使用位圖法來實現。8位整數可以表示的最大十進位制數值為99999999。如果每個數字對應於位圖中乙個bit位,那麼儲存8位整數大約需要99mb。因為1b=8bit,所以99mbit折合成記憶體為99/8=12.375mb的記憶體,即可以只用12.375mb的記憶體表示所有的8位數**號碼的內容。(先把8除了也許會好理解一些)(bit---b--kb---m)

8bit(位)=1byte(位元組)

1024byte(位元組)=1kb

1024kb=1mb

1024mb=1gb

1024gb=1tb

乙個漢字要占用2個位元組

二.topk問題

1. 從一億個數中找出最大的一萬個數

思路:1、先取一億個數中的前一萬個數,建立小頂堆。

2、從一億個數的第一萬零乙個數起,到最後乙個數遍歷。如果遍歷到的數大於堆頂,則把堆頂替換成遍歷到的數,然後調整堆。

3、遍歷之後的那一萬個數就是一億中的最大數了。

建堆時間複雜度是o(mlogm),演算法的時間複雜度為o(nmlogm)(n為10億,m為10000)。

優化的方法:可以把所有10億個資料分組存放,比如分別放在1000個檔案中。這樣處理就可以分別在每個檔案的10^6個資料中找出最大的10000個數,合併到一起在再找出最終的結果

本文**於:

海量資料問題

1 檔案太大,100g,肯定不可能一次載入到記憶體進行處理,這裡就必須將檔案進行切割了,可是依據哪種方法進行切割呢?假設只是從前到後等份切割的話,將檔案切割n份 切割的份數依據所給的記憶體大小 第乙份中假設ip位址為a出現次數最多,第二份中b出現的次數最多,這樣比較出來,假設a比b大,那得出的結果就...

海量資料問題總結

這個是一系列問題,網際網路公司,一些基本的功能都已經做的很完善了,海量資料處理成為重點的問題,也是面試筆試中常考的題目。主要參考 1.分而治之 hash對映 hash統計 堆 快速 歸併排序 hash對映很重要,分類後的資料不會分散,某乙個類別的資料會全部在一起。用hash map統計的速度要比ma...

海量資料問題總結

這個是一系列問題,網際網路公司,一些基本的功能都已經做的很完善了,海量資料處理成為重點的問題,也是面試筆試中常考的題目。主要參考 1.分而治之 hash對映 hash統計 堆 快速 歸併排序 hash對映很重要,分類後的資料不會分散,某乙個類別的資料會全部在一起。用hash map統計的速度要比ma...