計數排序
計數排序是一種非比較排序演算法。它通過計算每個唯一元素的出現次數對陣列進行排序。它對唯一元素的計數進行部分雜湊處理,然後執行計算以找到最終排序陣列中每個元素的索引。它是一個相當快的演算法,但不適合大型資料集。它作為基數排序中的一個子程式使用。 計數排序演算法 假設我們有一個無序陣列 A[],包含 n 個元素。 求出陣列內的最大元素 max 和最小元素 min。 初始化一個長度為 max-min+1 的陣列 count,所有元素都設定為 0。 初始化一個陣列 output,大小與輸入陣列 A 相同。 將 count 陣列中所有元素的數量減去 min,並將其差值作為索引。 累計 count 陣列內元素的總和。現在,count 陣列擁有排序陣列中每個元素的位置。 從尾部開始,從 A 中抽取元素,並進行以下操作。 計算元素索引為 count[A[i]-min]-1,並將 A[i] 儲存在 output 中。 將 count[A[i]-min] 減少 1。 將 output 元素儲存回原陣列 A 中。 計數排序例項 假設我們有陣列。(6, 3, 2, 7, 4, 5, 4, 2).