演算法導論 c 實現計數排序

2021-06-07 13:58:33 字數 473 閱讀 2648

計數排序的基本思想為:對每乙個輸入的元素x,確定出小於x的元素的個數。有了這一資訊,那麼就可以把x直接放到相應的位置上。

特點:1 需要臨時的儲存空間,如果排序資料範圍特別大時,空間開銷很大。

2 適合於排序0 - 100以內的資料。

3 排序的時間複雜度為o(n)。

#include #include const int size = 100;

int * array_list;

int * array_list_a;

void print_list(int * ,int );

void count_sort(int * ,int * ,int );

int main(int argc,char * argv)

delete c;

}void print_list(int * array_list,int length)

{ for(int i=0;i

演算法導論 計數排序

不管所堆排序,還是快速排序,排序的本質都所基於各個元素之間的比較。而可以證明的是,所有基於比較的排序演算法,在最壞情況下的時間複雜度的下界是o nlgn 而,計數排序不所基於元素之間的比較,而是,對於乙個輸入x,在整個輸入中確定出小於x的元素個數,這樣就可以把元素x直接放在它在最終輸出陣列中的確定位...

演算法導論 計數排序

計數排序假設n個輸入元素中的每乙個都是介於0到k之間的整數,此處k為某個整數。計數排序的基本思想就是對每乙個輸入元素x,確定出小於x的元素個數。有了這一資訊,就可以把x直接放到它在最終輸出陣列中的位置上。例如,如果有17個元素小於x,則x就屬於第18個輸出位置。當有幾個元素相同時,這個方案要略作修改...

計數排序(線性時間排序) 演算法導論

之前的排序都是通過比較得到的,即比較排序 在排序的最終結果中,各元素的次序依賴與它們之間的比較。而時間複雜度最好的也是o nlgn 接下來說乙個未經比較的排序,而複雜度則是線性的。計數排序 假設n個輸入元素的每乙個都是在0 k區間內的乙個整數,其中k為某個整數。當k o n 時,排序的執行時間為o ...