穩定版計數排序

2021-10-04 14:48:10 字數 809 閱讀 3397

相比樸素版計數排序,可以保證排序後陣列中相等元素原本的先後順序不變。

class

solution

//2.建立統計陣列並統計對應元素個數

int m = maxval - minval +1;

vector<

int>

temp

(m);

for(

int i=

0; i)//3.統計陣列做變形,後面的元素等於前面的元素之和

int sum =0;

for(

int i=

0; i)//4.倒序遍歷原數列,從統計陣列找到正確位置,輸出到結果陣列

vector<

int>

ans(n,0)

;for

(int i=n-

1, j=

0; i>=

0; i--

)return ans;}}

;

時間複雜度 o(n + k),n為元素個數,k 為元素的取值範圍。

空間複雜度 o(k),不考慮結果陣列分配空間。

計數排序的侷限性:

當數列最大最小值差距過大時,並不適用計數排序。

比如給定20個隨機整數,範圍在0到1億之間,這時候如果使用計數排序,需要建立長度1億的陣列。不但嚴重浪費空間,而且時間複雜度也隨之公升高。

當數列元素不是整數,並不適用計數排序。

如果數列中的元素都是小數,比如25.213,或是0.00000001這樣子,則無法建立對應的統計陣列。這樣顯然無法進行計數排序。

計數排序 python 穩定版排序

from future import print function defcounting sort collection 計數排序 演算法思想 假設要排序的陣列為 a 這裡最大值為3,最小值為0,那麼我們建立乙個陣列c,長度為3 1 0 4。然後一趟掃瞄陣列a,得到a中各個元素的總數,並保持到陣列...

Flask 發布 1 0 穩定版

簡評 現在都開始版本大躍進了嗎?對,別看別人,說的就是你 pipenv 名單太長,待補齊.flask 其實早就已經十分穩定了,而在第乙個 commit 大概 8 年之後,版本號才最終反映出了這一點。1.0 有大量的變化,這也代表了一年多的工作。整個框架中還有很多其他更改,可以閱讀完整的更新日誌了解公...

CoreOS首個穩定版發布

coreos宣布發布首個coreos穩定版本,coreos 367.1.0包含了linux 3.15.2 和 docker 1.0.1,並通過coreos managed linux 產品對跨多個平台進行了支援。coreos是一種新的 架構體系重新設計的linux發行版,提供了由docker帶來的容...