bitmap應用於排序

2021-06-19 05:21:12 字數 626 閱讀 5306

這種方法只適合

資料不重複,已知資料範圍

的情況來自於《程式設計珠璣》。所謂的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(可以這樣操作 p+(i/8)|(0×01<<(i%8)) 當然了這裡的操作涉及到big-ending和little-ending的情況,這裡預設為big-ending),因為是從零開始的,所以要把第五位置為1。

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

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

其實就是把計數排序用的統計陣列的每個單位縮小成bit級別的布林陣列

python應用於網路 python應用於網路通訊

專案需要用到採用python實現維護測試工具,測試物件是linux裝置,需要在pc端採用python獲取linux裝置相關資訊 一 採用udp獲取普通資訊 udpserver socket af inet,sock dgram udpserver.bind ip,port data,client a...

Exercise 函式應用於排序

exercise1 用函式實現氣泡排序 def payxu list for i in range 1,len list for j in range 0,len list i if list j list j 1 tmp list j list j list j 1 list j 1 tmp re...

trie樹 應用於統計和排序

1.什麼是trie樹 trie樹 又稱單詞查詢樹 字典樹 是一種 樹形結構 是一種雜湊樹的變種,是一種用於快速檢索的多叉樹結構。典型應用是用於統計和排序大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 最大限度地減少無謂的字串比較,查詢效率比雜湊表 高。trie的核心思...