桶排序

有天小诺和女友小馨在黄山的情人谷发现了7块小石头,上面分别写有数字5,2,1,2,7,8,7小馨让小诺用计算机编程给他这些石头排排序。输出结果是1,2,2,5,7,7,8

小诺思考了一下,这些数字都是小于9的,我就用个数组来记录这些数,数组下标记录这7个数,数组值记录该数出现的次数,然后依次输出数组下标。比如a[2]=2表示2出现了两次,a[5]=1表式5出现了一次,a[7]=2表示7出现了2次。

 1 #include<stdio.h>
 2 
 3 int main()
 4 {
 5     int t;
 6     int a[10];       //由于这7个数的数值是小于9的,所以开一个最大下标为9的数组
 7 
 8     for(int i=0;i<10;i++)   //数组初始化为0
 9     {
10         a[i]=0;
11     }
12 
13     for(int i=1;i<=7;i++)    //循环读入7个数
14     {
15         scanf("%d",&t);       //每个数读入变量t中
16         a[t]++;               //数组下标是读入的数值,数组值是记录该数出现几次
17     }
18 
19     for(int i=0;i<=10;i++)
20     {
21         for(int j=1;j<=a[i];j++)  //a[i]等于几就出现几次,就打印几次,
22         {
23             printf("%d ",i);
24         }
25     }
26 
27     return 0;
28 }

 

posted @ 2016-07-31 11:04  小胡桃  阅读(162)  评论(0编辑  收藏  举报