排序之bitmap排序

2021-06-16 10:10:43 字數 697 閱讀 9489

所謂的bit-map就是用乙個bit位來標記某個元素對應的value, 而key即是該元素。由於採用了bit為單位來儲存資料,因此在

儲存空間

方面,可以大大節省。

如果說了這麼多還沒明白什麼是bit-map,那麼我們來看乙個具體的例子,假設我們要對0-7內的5個元素(4,7,2,5,3)排序(這裡假設這些元素沒有重複)。那麼我們就可以採用bit-map的方法來達到排序的目的。要表示8個數,我們就只需要8個bit(1bytes),首先我們開闢1byte的空間,將這些空間的所有bit位都置為0

然後遍歷這5個元素,首先第乙個元素是4,那麼就把4對應的位置為1。

然後再處理第二個元素7,將第八位置為1,,接著再處理第三個元素,一直到最後處理完所有的元素,將相應的位置為1。

然後我們現在遍歷一遍bit區域,將該位是一的位的編號輸出(2,3,4,5,7),這樣就達到了排序的目的。

c語言**如下:

#include //列印array中的數

void displayarray(int array,int size){

printf("the array is:");

int i;

for(i=0;i=0;j--){

//如果指定的unsigned char bitmap[i]的第j位(從低位往高位數)不為0,輸出該bit的下標

if((bitmap[i] & (0x1<

使用Bitmap實現排序

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

利用BitMap進行排序

利用bitmap可以對某些資料進行排序,但是限制條件是必須實現知道資料的範圍,而且不能重複,類似於桶排序,但是比桶排序更加節省記憶體。原理很簡單,就是設定陣列某一位的數在bitmap中對應位為1,然後遍歷陣列就可以得到結果。這裡以100以內的乙個陣列排序為例 例如陣列 intarray 則設定bit...

演算法 BitMap 排序 索引

bitmap 排序 10g檔案的自然數,亂序排列,在32機器中限制為2g記憶體進行排序。x86機器採用的是小端儲存模式 即小端模式 資料的高位儲存在位址的高位位址,資料的地位儲存位址的地位位址上。數字按照bit 位進行儲存,儲存的bit 的值 置位 為 1.如 2,7,5,1,4 五位數字進行排序,...