計數排序法 | 會動的演算法

符號表示

資料
輸入整數A
累加每個整數出現的次數C
排序完成的陣列B

輸入
輸入整數序列。
計算整數的出現次數
將整數的出現次數加 1。C[A[i]]++
累加每個整數的出現次數
計算累加的結果。C[i] ← C[i] + C[i-1]
將輸入陣列的資料填入輸出陣列
將使用到的整數出現次數減 1。C[A[i]]--
以出現次數做為輸出陣列的索引,將輸入陣列的元素複製到對應位置。B[C[A[i]]] ← A[i]
輸出
輸出排序完成的整數。

演算法動畫

輸入
計數排序法 | 輸入

計算整數的出現次數
計數排序法 | 計算次數

累加每個整數的出現次數
計數排序法 | 計算出現次數的累積和

將輸入陣列的資料填入輸出陣列
計數排序法 | 移動到輸出陣列

輸出
計數排序法 | 輸出