1. 程式人生 > >計數排序及C語言實現

計數排序及C語言實現

之前討論的插入排序、歸併排序、堆排序和快速排序都是基於比較的排序演算法,對於所有的比較排序演算法,其複雜度最優也要O(nlgn)。證明過程請參考演算法導論第八章第一節。

今天介紹一種非比較排序,名為計數排序。

基本思想是:對於每一個元素,確定小於該元素的個數,就可以將該元素排在正確的位置。該演算法能達到線性時間複雜度,也就是O(n)。

程式中,陣列a為輸入陣列(未排序陣列),b為輸出陣列,c為中間陣列。20的意思是假設陣列中每個元素均為小於20的非負整數。