計數排序的基本思想為:對每乙個輸入的元素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 ...