點陣圖排序
所謂點陣圖,就是用一個位(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、字元是一種符號,同以上說的儲存單位不是一回事。
相關文章
- 演算法-點陣圖排序演算法排序
- PHP實現bitmap點陣圖排序求交集PHP排序
- 點陣圖
- 《程式設計珠璣》第一章-點陣圖排序程式設計排序
- 使用點陣圖選單項——建立點陣圖 (轉)
- 點陣圖索引.sql索引SQL
- 點陣圖索引(Bitmap Index)——從B*樹索引到點陣圖索引索引Index
- 點陣圖索引(Bitmap Index)——點陣圖索引與資料DML鎖定索引Index
- 使用點陣圖選單項——點陣圖選單項例項 (轉)
- PHP 文字生成點陣圖PHP
- Redis 應用-點陣圖Redis
- 可寫點陣圖(WriteableBitmap)
- Oracle索引——點陣圖索引Oracle索引
- Oracle-點陣圖索引Oracle索引
- 點陣圖字型匯入
- 使用點陣圖選單項——設定點陣圖型別標記 (轉)型別
- ClickHouse 留存、路徑、漏斗、session 點陣圖 roaringbitmap 點陣圖最佳化Session
- PHP掃描圖片轉點陣 二維碼轉點陣PHP
- oracle 點陣圖索引(bitmap index)Oracle索引Index
- 點陣圖索引:原理(BitMap index)索引Index
- 點陣圖索引(bitmap-index)索引Index
- 建立點陣圖選單 (轉)
- 陣列排序陣列排序
- 【點陣圖索引】在點陣圖索引列上進行更新操作的鎖代價研究索引
- 代理模式+react+ 圖片佔點陣圖模式React
- ATL中使用點陣圖資源繪圖繪圖
- Android Bitmap(點陣圖)詳解Android
- Python點陣圖索引學習Python索引
- 點陣圖與ERP場景
- 點陣圖(bitmap)原理以及實現
- 點陣圖索引的工作原理 - Richard索引
- 點陣圖索引(Bitmap Index)——索引共用索引Index
- windows程式設計之點陣圖Windows程式設計
- bitmap index點陣圖索引系列(一)Index索引
- 陣列的排序陣列排序
- 物件陣列排序物件陣列排序
- JavaScript 陣列排序JavaScript陣列排序
- js陣列排序JS陣列排序