计数排序的一般过程
计数排序不通过比较元素之间的大小来排序,利用数组的下标来计数,当这个数出现时,则对应数组计数加一。最后直接遍历数组得到排好序的序列。
计数排序样例过程图解
文章以8, 9,2,3,5,8,11,14,13为例
c语言代码
#include <stdio.h>
int a[16];
int main(void)
{
int num,i,b,j;
printf("请输入排序的个数:");
scanf("%d",&num);
printf("请输入排序数:");
for(i=0;i<num;i++) //计数
{
scanf("%d",&b);
a[b]++;
}
printf("排序后的序列:");
for(i=0;i<16;i++) //输出
{
j=a[i];
while(j>0)
{
printf("%d ",i);
j--;
}
}
return 0;
}