bitmap原理及實現

2021-10-05 05:07:02 字數 1433 閱讀 3501

以二進位制位來表示數字

例如:第27位為1,第28位為0。表示在map中27存在28不存在

實現

/** * 新增, 即設定對應位為1

* @param $arg

* @return $this

*/public

function

set(

$arg)}

else

return

$this;}

/** * 判斷數字是否存在

* @param $arg

* @return bool

*/public

function

get(

$arg

)/**

* 刪除, 即設定對應位為0

* @param $arg

* @return $this

*/public

function

del(

$arg)}

else

return

$this;}

/** * 獲取數字對應的位置下標

* @param $arg

* @return array

*/protected

function

getlocation

($arg

)}

<?php 

$map

=new

bitmap

(9999);

for($i=

1;$i<

10000;$i

++)$map

->

del(

123)

;$map

->

del(

9998);

var_dump([

1=>

$map

->

get(1)

,99=>

$map

->

get(99)

,123

=>

$map

->

get(

123)

,9998

=>

$map

->

get(

9998),

9999

=>

$map

->

get(

9999)]

);//array(5)

BitMap演算法原理及實現實現

1.bitmap是什麼 bitmap是乙個十分有用的結構。所謂的bit map就是用乙個bit位來標記某個元素對應的value,而key即是該元素。由於採用了bit為單位來儲存資料,因此可以大大節省儲存空間。2.bitmap優勢 舉個例子,有乙個無序有界int陣列,初步估計占用記憶體44 16位元組...

bitmap原理和實現

我們知道乙個1g 1024m,1m 1024k,1k 1024byte,1byte 8bit,所以1個位元組等於8bit,也就是8個二進位制位,位圖法的概念是用乙個位 bit 來標記某個數的存放狀態,所以節省了大量的空間。以二進位制位來表示數字 例如 第27位為1,第28位為0。表示在map中27存...

BitMap的原理和實現

32位機器上,對於乙個整型數,比如int a 1,int佔4位元組,1位元組 8位 1 byte 8 bit 佔32bit位。如果每個數字用int儲存,那就是20億個int,因而占用的空間約為 2000000000 4 1024 1024 1024 7.45g 如果按位儲存就不一樣了,20億個數就是...