计数排序

 

 1 //一直待排序列的范围是0~bound-1,所以辅助数组C的大小为bound;时间复杂度O(n)
 2 int* countSort(int A[],int n,int bound){
 3     int* B=new int[n];
 4     int* C=new int[bound];
 5     for(int i=0;i<bound;i++)
 6         C[i]=0;
 7     for(int i=0;i<n;i++)
 8         C[A[i]]=C[A[i]]+1;
 9     for(int i=1;i<bound;i++)
10         C[i]=C[i-1]+C[i];
11     for(int i=0;i<n;i++){
12         C[A[i]]--;
13         B[C[A[i]]]=A[i];    
14     }
15     return B;
16 }

 

posted @ 2014-09-10 16:18  liuzhiminxd  阅读(74)  评论(0编辑  收藏  举报