以前只知道基数排序(现在还忘了……),现在想要系统的学一下算法,现在看的是时空权衡这一块,讲了计数排序这个方法。 主要思想是空间换时间,对于规定范围类型的数值,利用一个数组来记录值为范围内每个数值的个数,然后依次输出。复杂度仅为O(n)DistributionCounting(int [] A,int n,int l,int h){ int j; for(int i=0;i<=h-l;++j) D[i]=0; for(int i=0;i<=n-1;++i) ++D[A[i]-l]; for(int i=1;i<=h-l;++i) D[i]+=D[i-1]; for(int i=n-1;i>=0;++i){ j=D[A[i]-l]-1; S[j]=A[i]; --D[A[i]-l]; } return S; }