計數排序如何理解

2021-10-01 08:16:20 字數 882 閱讀 5033

計數排序如何理解呢

計數排序思想

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個輸出位...