不同於泡沫排序法透過兩兩比較和交換來實現排序,計數排序法不移動資料本身,而是直接計算每個元素的排名。

想像一下,一個教室裡有 N 位學生,每位學生都拿著自己的分數。要確定每個學生的排名,可以讓每個學生數一數有多少人的分數比自己高,然後加一,這就是自己的排名。然而,這種方法的比較次數仍然是 N*N。

計數排序法提供了一個更高效的解決方案:讓學生們排成一排,從第一個學生開始,逐一往右比較。如果當前學生的分數較低,則他的排名加一。這樣,第二個學生就不需要與第一個學生比較,第三個學生也只需要往右比較,而不需要與第一、第二個學生比較,大幅減少了比較次數。

例如,對於數列資料 8、2、9、7、1,計數排序法的演算過程如下:

(這裡需要補充具體的演算過程圖示或說明)