以二進位制位來表示數字實現例如:第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億個數就是...