從海量資料中查詢乙個數

2021-06-21 05:57:24 字數 416 閱讀 4509

題目:給出40億個不重複的unsigned int的整數,沒排過序,再給乙個指定的數,判斷這個數是否在那40億個數 中

存在?

方案一:申請512mb的記憶體,利用位圖,乙個bit代表乙個unsigned int的值,讀入這40億個數,設定相應的位,

存在的設定為1,不存在的設定為0,然後我們只需要o(1)的複雜度查詢即可。

方案二:因為是32位無符號整型數,我們先把這40億個數的二進位制的最高位為0和1的數分別放進兩個資料夾,然後

再在每個資料夾中繼續把次高位為0和1的數分別放進兩個資料夾,以此類推。。。這樣下去就建立乙個樹

型的檔案系統,類似字典樹。這樣做的時間複雜度為

遞減左旋數列中查詢乙個數

題目 乙個陣列是由乙個遞減數列左移若干位形成的,比如是由克移兩位形成的,在這種陣列中查詢某乙個數。思路 在此序列不斷二分的過程中,由於原序列是乙個遞減序列經過旋轉得到的,將它從任何位置分開,都會得到兩個序列,其中乙個是遞減序列,另乙個可以通過乙個遞減序列通過旋轉得到。這樣在不斷地二分查詢時,我們處理...

怎麼從海量資料中快速查詢某個資料 索引

mysql 底層依賴的是 b 樹這種資料結構。那類似 redis 這樣的 key value 資料庫中的索引,又是怎麼實現的呢?底層依賴的又是什麼資料結構呢?索引這種常用的技術解決思路,底層往往會依賴哪些資料結構。同時,通過索引這個應用場景,你學過過或者知道幾種支援動態集合的資料結構呢?在實際的軟體...

在乙個二維陣列中查詢乙個數

在乙個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。int juge int matrix,int xlen,int ylen,int key xlen 表示列的數,ylen表示行數 i...