資料結構 BitMap

2021-09-27 02:29:40 字數 490 閱讀 5277

問題:已知有n個整數,這些整數的範圍是[0,100],請你設計一種資料結構,使用陣列儲存這些資料,並提供兩種方法, 分別是addmember和i***ist.下面是這種資料結構的類的定義。

思路1:用陣列儲存,查詢是否存在需要for迴圈n, 有n個數那麼複雜度為o(n)

思路2: 用陣列儲存,新增資料則arr[index] = 1, 這樣查詢是否存在有n個數賦值度為o(1),,直接用過陣列下標判斷是否為1

思路3:加入有1億個數呢, 上面思路2則會造成空間浪費, 我們可以用過1個整數表示32位元組,每個位元組則可以表示一種狀態,這樣空間上縮小了1/32

class bitmap 

/*** 新增乙個資料

* @param data

*/addmember(data)

for (let i = 0; i <= max; i++)

}console.log(sort_arr);

資料結構之BITMAP

給40億個不重複的無符號整數,沒排過序。給乙個無符號整數,如何快速判斷乙個數是否在這40億個數中。這個問題怎麼解決呢?1 將40億資料儲存起來 儲存在陣列 鍊錶 樹中 再和該數判斷是否相等。那我們思考一下需要多少記憶體 2 借助點陣圖bitmap解決。位圖 bitmap 是用乙個陣列中的每個資料的每...

資料結構 bitmap剖析

最近在看 程式設計珠璣 這本書。第1章中引入了bitmap 位圖 的資料結構。以前沒有接觸過,抽空研究了一下,記錄下來。書中描述的情景 1.最多1000萬個7位數 號碼 號碼不重複,實際大概800萬個 儲存在文字中 2.每隔一段時間要對號碼進行排序 3.程式模組最多可用1m bytes的記憶體,磁碟...

C 實現BitMap資料結構

分治,分布式。bitmap 位圖 及其公升級版bloom filter是處理海量資料常用的方法,這裡先介紹bitmap概念及其c 實現。一 bitmap點陣圖 該資料結構描述了乙個有限定義域內的稠密集合,其中的每乙個元素最多出現一次並且沒有其他任何資料與該元素相關聯。即使這些條件沒有完全滿足 例如,...