桶排序的简单实现

 1 #include 
 2 
 3 int main()
 4 {
 5     //简化的桶排序 
 6     int a[101],i,j,num,t;
 7     for(i=0;i<=100;i++)
 8         a[i]=0;  //初始化为0 
 9     printf("输入数字个数:"); 
10     scanf("%d",&num);
11 
12     for(i=1;i<=num;i++)
13     {
14         scanf("%d",&t);//将数字赋给对应数组 
15         a[t]++;//数组中的元素代表数的个数 
16     }
17     for(i=0;i<=100;i++)
18         for(j=1;j<=a[i];j++)
19             printf("%d ",i);//出现了几次就将桶的编号打印几次 
20 
21     return 0;
22 }

将每一个数据与它的数组号对应,时间复杂度为O(m+n),不失为一种较为快速的排序方法

你可能感兴趣的