#include <stdio.h>
void counting_sort(int *a,int *b,int k,int length){
int c[k];
int i;
for(i=0;i<k;i++)
c[i]=0;
for(i=0;i<length;i++)
c[a[i]]++;
for(i=1;i<length;i++){
c[i]+=c[i-1];
}
for(i=0;i<length;i++){
b[ c[a[i]] - 1]=a[i];
c[a[i]]--;
}
}
int main(){
int a[8]={2,5,3,0,2,3,0,3};
int b[8];
counting_sort(a,b,6,8);
int i;
for(i=0;i<8;i++)
printf("%d ",b[i]);
return 0;
}
void counting_sort(int *a,int *b,int k,int length){
int c[k];
int i;
for(i=0;i<k;i++)
c[i]=0;
for(i=0;i<length;i++)
c[a[i]]++;
for(i=1;i<length;i++){
c[i]+=c[i-1];
}
for(i=0;i<length;i++){
b[ c[a[i]] - 1]=a[i];
c[a[i]]--;
}
}
int main(){
int a[8]={2,5,3,0,2,3,0,3};
int b[8];
counting_sort(a,b,6,8);
int i;
for(i=0;i<8;i++)
printf("%d ",b[i]);
return 0;
}
本文介绍了一种简单的计数排序算法实现方法,并通过一个具体的示例展示了如何使用该算法对整数数组进行排序。该算法适用于数值范围较小的情况。
2057

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



