bitmap實現大資料排序和去重

2021-08-15 22:18:25 字數 797 閱讀 1698

要點:

假如有10億元素,全部資料讀進記憶體,占用 1000000000 * 4 / 1024 / 1024 /1024 ≈ 3.725 g,**!

解決方法

bitmap演算法,每一位都能表示一位數字,10000000000 / 8 / 1024 / 1024 / 1024 ≈ 0.116 g,節約了31倍的空間!

**:

#define sizebit 1000000000  

#define size sizebit/32 + 1

void cleanall(unsigned int* bitmap)

void set(unsigned int* bitmap, unsigned int index)

void clean(unsigned int* bitmap, unsigned int index)

int get(unsigned int* bitmap, unsigned int index)

void sort(vector&a) // 將元素存入bitmap陣列中,元素其實自動排序,只要bit == 1,即說明有此元素。

for (int i = 0; i < sizebit; ++i) }

int main()

; sort(a); // 輸出 1 2 3 5

system("pause");

return 0;

}

大資料去重 Bitmap和布隆過濾器

場景描述 在某場景下有乙個使用者關係鏈,比如a關注了b,然後b關注了c,然後使用者b知道自己被誰關注,也知道他關注了誰。假如說將這個資訊放在統一的資料庫中,然後使用者查詢的時候每次去遍歷,那麼就會對資料庫造成非常大的負擔,而且在乙個億級使用者系統中這樣的時間延遲是不可接受的。這種情況下我們可以為每個...

使用Bitmap實現排序

使用bitmap實現排序,是通過在bitmap將待排序列表中的數值位標記為1,然後順序輸出bitmap的標記位實現排序的方法。具體來說,分為兩步 1 迴圈待排序列表,i 表示待排序列錶值。bitmap i 1 二 實踐篇 參考一篇python實現的bitmap encoding utf 8 auth...

大資料處理 Bitmap

mapreduce是一種程式設計模型,用於大規模資料集 大於1tb 的並行運算。概念 map 對映 和 reduce 歸約 bit map空間壓縮和快速排序去重 1.bit map的基本思想 32位機器上,對於乙個整型數,比如int a 1 在記憶體中佔32bit位,這是為了方便計算機的運算。但是對...