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