計數排序如何理解呢
計數排序思想
1:找到陣列中最大的和最小的兩個數
2:建立乙個空間大小為max-min+1 的陣列,用來儲存待排序陣列中相同數出 現的次數
3:訪問待排序陣列,以最小值為界,存放在建立的陣列中,存入的為出現的個數
4:最後順序輸出最小值加待排序的下標,器陣列存放的計數減一,為零則往後繼續輸出
例項1:如待排序為 7,9,7,20,6,1,2,4,6,8
2:找到最小的為1 最大的為20 ,則儲存計數的陣列大小為20,num[20];
3:然後進行計數存入計數陣列中,如 7-1=6,存到num[6]++,9-1=8,num[8] ++; 7-1=6,num[6]++(這裡下標為6的計數就為2);
4:計數完之後其實就完成了排序,輸入 index +min num[index]–,num[index]為零就index++,直到列印所有的資料,就完成了
**
#include
#include
void
countsort
(int
*num,
int max,
int min,
int n)
;//遍歷待排序陣列
for(i=
0;i//排好之後
for(i=
0;i};};
intmain()
;//1:找到最大最小的,這裡就不找了
int max=
20,min=1;
int len;
countsort
(num,max,min,10)
;};`
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個輸出位...