void CountSort(int a[],int n) //设这时a[0..n-1]放的是1..max之间的数 均是正整数
{
int count[n]={0};
for(int i=1;i<=max;i++)
count[a[i]]++;
for(int i=1;i<=max;i++)
for(int j=0;j<count[i];j++)
printf("%d ",i);
}
基本思想 就是把输入的数对应到数轴上 因为数轴本身是有序的 所以这样做了后 再顺着最左边即最小数一直
检查 如有标记(count[i]大于0) 则输出这count[i]个i 如此下去 最终得到一个已排好序的数列了~~基数排序时间效率
是O(n)的 可惜对数据特殊性依赖性太强 因而应用场合较有限