桶排序
有天小诺和女友小馨在黄山的情人谷发现了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 }