1. 概述
位圖(bitmap)是一種非常常用的結構,在索引,數據壓縮等方面有廣泛應用。本文介紹了位圖的實現方法及其應用場景。
2. 位圖實現
(1)自己實現
在位圖中,每個元素為“0”或“1”,表示其對應的元素不存在或者存在。
(2)函數庫實現
C++的STL中有bitmap類,它提供了很多方法,詳見:http://www.cplusplus.com/reference/stl/bitset/
3. 位圖應用
3.1 枚舉
(1)全組合
字符串全組合枚舉(對于長度為n的字符串,組合方式有2^n種),如:abcdef,可以構造一個從字符串到二進制的映射關系,通過枚舉二進制來進行全排序。
(2)哈米爾頓距離
枚舉算法,復雜度是O(N^2),怎樣降低復雜度呢?
如果是N 個二維的點,那么我們可以怎么用較快的方法求出
通過簡單的數學變形,我們可以得到這樣的數學公式:
通過觀察,我們發現每一對相同元的符號必定相反,如:x_i-y_i,于是我們有了一個二進制思想的思路,那就是枚舉這些二i維的點的x 軸y 軸前的正負號,這樣就可以用一個0~3 的數的二進制形式來表示每個元素前面的正負號,1表示+號,0表示−號,如:2 表示的二進制位形式為10表示x_i-y_i。這樣我們就可以通過2^2*N次記錄下這些二元組的不同的符號的數值,對于每個二進制來表示的不同的式子只需記錄下他們的值,這樣我們只需求max_i 和min_i出這些相同的二進制表示的式子max_i 主站蜘蛛池模板: 久久这里只有精品首页 | 97久久精品人人做人人爽50路 | 国产羞羞视频在线观看 | 日韩国产在线 | 欧美日韩不卡合集视频 | caoporon| 国产精品国产自产拍高清 | 中文字幕 在线观看 | 国产精品美女久久久久aⅴ国产馆 | 亚洲日本欧美日韩高观看 | www.国产| 国产馆一区二区 | 在线观看你懂的网站 | 在线观看亚洲视频 | 天天操天天拍 | 亚洲欧美精品 | 自拍偷拍欧美日韩 | 欧美在线二区 | 91社区在线高清 | 91污视频软件 | 制服 丝袜 激情 欧洲 亚洲 | 中文字幕高清av | 久久国产综合 | 九九热精品视频 | 欧洲毛片 | 黄色网址免费 | 精品久久久久国产免费 | 国产福利一区二区三区四区 | 国产欧美日韩综合精品一区二区 | 免费av一区二区三区 | 日韩在线无| 在线日韩 | 国产精品爱久久久久久久 | 91视频一88av | 在线日韩 | 免费黄色av| 日韩在线观看中文字幕 | 久久国产精品一区 | 精品少妇一区二区三区日产乱码 | 欧美一级在线观看视频 | 91九色在线观看 |