一、簡介
2023年提出,是乙個不需要比較的,類似於桶排序的線性時間排序演算法。該演算法是對於已知數量範圍的陣列進行排序。時間複雜度為o (n),適用於小範圍集合的排
序。計數排序是用來排序0到100之間的數 字的最好的演算法。
二、基本思想
對於給定的輸入序列中的每乙個元素x,確定該序列中值小於x的元素的個數。一旦有了這個資訊就可以直接將x存放到正確的位置上。我們可以使用乙個陣列c,用來記錄
記錄要排序陣列中對應記錄出現的個數。
eg:要排序的陣列a=
這裡邊最大的數為3,最小為0,那麼我們建立乙個長度為4的陣列c掃瞄一遍陣列a,將其要排序的資料個數記錄在陣列c中,如c[3]= 1,c[0] = 2,這樣,我們根據陣列c
將,資料寫入陣列b,資料1,分別寫入b[0]b[1]b[2]b[3],3寫入b[6]。最後陣列b內的資料為排序好的結果。
三、**
public static int sort(int a,int num)
return b;
}
python計數排序 Python 計數排序
1.python coding utf 8 def counting sort a,b,k 計數排序,偽碼如下 counting sort a,b,k 1 for i 0 to k 初始化儲存區的值 2 do c i 0 3 for j 1 to length a 為各值計數 4 do c a j ...
排序 計數排序
資料結構和演算法系列目錄 不斷更新 計數排序是一種線性時間的排序,它的時間複雜程度為o n 雖然是線性的時間複雜程度,但是它的空間複雜程度比較高,而且用之前需要有乙個硬性的前提。這個前提在後面給出,這裡先來簡單介紹一下計數排序。計數排序是先掃瞄一邊待排序陣列,並用乙個輔助陣列記錄待排序每個元素應該在...
排序 計數排序
計數排序假設n個輸入元素中的每乙個都是在0到k區間內的乙個整數,其中k為某個整數。當k o n 時,排序的執行時間為 n 計數排序的基本思想是 對每乙個輸入元素x,確定小於x的元素個數。利用這一資訊,就可以直接把x放到它在輸出陣列中的位置上了。例如,如果有17個元素小於x,則x就應該在第18個輸出位...