計數排序是一種不需要比較的排序,比任何比較的排序都要快。
適用於陣列中的值不是特別大的情況,因為需要用空間換時間,所以當陣列中的值特別大的時候,空間開銷會超級大。從**中可以明顯看出來。
此外,計數排序只能用於正數排序(個人認為負數排序也是可以的)。
const int max = 1e3; //初始陣列的值,即輸入值的數量。
int curr[max], final[max], count[max]; //排序前的陣列和排序後的陣列,大小一致。注意傳參前需要初始化為0, 這裡因為是全域性變數,所以省略了這一步。
void countsort(int curr, int final, int number)
for (int i = 1; i <= val; i++)
for (int i = number-1; i >= 0; i--)
}
資料結構 中的計數排序 CountSort
計數排序的概念 1.計數排序的原理 設被排序的陣列為a,排序後儲存到b,c為臨時陣列。所謂計數,首先是通過乙個陣列c i 計算大小等於i的元素個數,此過程只需要一次迴圈遍歷就可以 在此基礎上,計算小於或者等於i的元素個數,也是一重迴圈就完成。下一步是關鍵 逆序迴圈,從length a 到1,將a i...
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 雖然是線性的時間複雜程度,但是它的空間複雜程度比較高,而且用之前需要有乙個硬性的前提。這個前提在後面給出,這裡先來簡單介紹一下計數排序。計數排序是先掃瞄一邊待排序陣列,並用乙個輔助陣列記錄待排序每個元素應該在...