計數排序應用

2021-10-06 22:00:21 字數 785 閱讀 1248

給定乙個陣列,求如果排序之後,相鄰兩數的最大差值,

///要求時間複雜度o(n),且要求不能用非基於比較的排序。【隨機生成9個數,範圍在0-99】

#define length 9

//長度

intmaxd

(int arr)

//最大差值處理函式

if(min == max)

return0;

bool empty[length +1]

=;//標記桶是否為空

int numax[length +1]

=;//記錄桶內最大值

int numin[length +1]

=;//記錄桶內最小值

for(

int i =

0; i < length; i++

)//遍歷整個陣列,不是桶

numax[a]

= arr[i]

> numax[a]

? arr[i]

: numax[a]

; numin[a]

= arr[i]

< numin[a]

? arr[i]

: numin[a];}

int res =0;

int last_max = numax[0]

;//從0號桶開始

for(

int i =

1; i < length +

1; i++)}

return res;

}

計數排序的應用與分析

問題描述 某公司有幾萬名員工,請完成乙個時間複雜度為o n 的演算法對該公司員工的年齡做排序,要 求空間複雜度為o 1 問題分析 因為人的年齡總共也不會超過100歲,所以可以建立乙個大小為100的輔助空間 陣列 用於 統計各個年齡的數目,統計後在把輔助空間中對應不為0的index,插入到對應的待排陣...

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 雖然是線性的時間複雜程度,但是它的空間複雜程度比較高,而且用之前需要有乙個硬性的前提。這個前提在後面給出,這裡先來簡單介紹一下計數排序。計數排序是先掃瞄一邊待排序陣列,並用乙個輔助陣列記錄待排序每個元素應該在...