bitmap的定義:所謂的bit-map就是用乙個bit位來標記某個元素對應的value, 而key即是該元素。由於採用了bit為單位來儲存資料,因此在儲存空間方面,可以大大節省。
使用bitmap實現8位**號碼的儲存,能夠實現**號碼的插入、刪除、查詢。
使用bitmap演算法。8位**號碼總共有0-99999999個號碼,每位代表乙個**號碼,需要12500000個位元組的記憶體來儲存**號碼
實現過程如下:
#include#include#include#include#define byte_size 8
#define bit_map_size 12500000
#define input_data_size 10
void add_data(uint8_t *bit_map, uint32_t data)
void find_data(uint8_t *bit_map, uint32_t data)
else }
void delete_data(uint8_t *bit_map, uint32_t data)
else }
int main()
; int i = 0;
uint32_t data;
memset(bit_map, 0, bit_map_size);
for(i = 0; i < input_data_size; i++)
printf("input find data:\n");
scanf("%ld", &data);
find_data(bit_map, data);
printf("input delete data:\n");
scanf("%ld", &data);
delete_data(bit_map, data);
printf("input find data:\n");
scanf("%ld", &data);
find_data(bit_map, data);
return 0;
}
執行結果:
BIT MAP的簡單實現
主要是參考guisu同學的 確實很漂亮 我是顯得主要功能是把txt中存在的ip位址在map中的位元位置1,從而方便後續的判斷,判斷是否出現過ip欄位,其中上篇文中自己津津樂道的strtok 竟然被淘汰了啊,我都不知道,這裡換成了strseq char char 這裡使用的時候注意char 指向的內容...
Bit Map實現海量資料對映的簡單演算法
bit map實現海量資料對映的簡單演算法 最近一直在搞搜尋引擎,準確的說是丟了乙個月又開始鼓搗搜尋引擎,在做避免網頁重複搜尋時遇到了困難 打算用hash來對映url字串從而避免重複搜尋 神馬是hash我就不重複了,自己補資料結構去 但是考慮到網頁url的海量性,做乙個demo的搜尋引擎出來也不要太...
簡單易懂的BitMap演算法
面試題經常會有類似給很大的一堆連續的,不重複的無符號整數 如10億個整數 而且是無序的,然後希望以後能頻繁快速的查詢某個數字是否出現在這些數字中。a 一開始如果我們先假設不考慮記憶體需求,由於要頻繁快速的查詢數字是否存在,所以對這些數字進行排序進行二分明顯是不符合要求,查詢最快就是類似hash,這道...