點陣圖排序

躍然發表於2018-02-03

所謂點陣圖,就是用一個位(bit)來標記某個元素對應的值,而鍵就是該元素。才用位為單位的來儲存資料,可以大大節省儲存空間。
點陣圖通過使用位陣列來表示某些元素是否存在,可進行陣列的快速查詢、判重、刪除。
下面來看一個排序的示例。假設要對 0~7 中的 5 個元素(4,2,5,3,1)進行排序,我們採用點陣圖的方法來實現快速排序:
因為要表示 8 個數,所以只需要 8 位,由於 8 位等於 1 位元組,所以開闢 1 位元組的空間就夠了。將這個空間所有位都置 0 ,如圖(第一行代表列序號):

0 1 2 3 4 5 6 7
0 0 0 0 0 0 0 0

然後遍歷 5 個元素,因為待排序的第一個元素是 4 ,所以把 4 對應的位置置為 1 。因為從 0 開始計數,所以第 5 位重置為 1 。如下圖所示:

0 1 2 3 4 5 6 7
0 0 0 0 1 0 0 0

對待排序的其它元素依次這樣處理,最後得到結果:

0 1 2 3 4 5 6 7
0 1 1 1 1 1 0 0

最後遍歷這個位區域,將某位是 1 的位的編號(1,2,3,4,5)輸出,就達到了排序的目的。

附:位、字元、位元組區別

1、計算機儲存資訊的最小單位,稱之為位(bit),音譯位元,二進位制的一個“0”或一個“1”叫一位。
2、計算機儲存容量基本單位是位元組(Byte),音譯為拜特,8個二進位制位組成1個位元組,一個標準英文字母佔一個位元組位置,一個標準漢字佔二個位元組位置。
3、計算機儲存容量大小以位元組數來度量,1024進位制:
1024B=1K(千)B
1024KB=1M(兆)B
1024MB=1G(吉)B
1024GB=1T(太)B
以下還有PB、EB、ZB、YB 、NB、DB,一般人不常使用了。
4、字元是一種符號,同以上說的儲存單位不是一回事。

相關文章