void CountSort(int a[], int n){
int *b=new int[n];
int i,k,max;
max=-2000000000;
for(i=0;i<n;i++)
if(a[i]>max) max=a[i];
int *c=new int[n+1];
for(i=0;i<max;i++)
c[i]=0;
for(i=0;i<n;i++)
c[a[i]]++; // count
for(i=1;i<n;i++)
c[i]+=c[i-1]; // add
for(i=n;i>=0;i--){
b[c[a[i]]]=a[i];
c[a[i]]--;
}
}


914

被折叠的 条评论
为什么被折叠?



