排序算法(一)桶排法

 

排序算法(一)桶排法

  --转自啊哈磊【坐在马桶上看算法】算法1:最快最简单的排序——桶排序

  问题:

    随机输入五个0-10之间的数,对输入的数由小到大排列
  方法:

    桶排法:用一个大小为11的一维数组,数组下标0~10分别表示分数0~10,不同的分数所对应单元格则存储得此分数的人数
  

  代码:

 1 #include <stdio.h>
 2 
 3 int main(void)
 4 {
 5     int book[11];
 6     int tmp;
 7     for (int i = 0; i <=10; i++)
 8         book[i] = 0;//初始化为0
 9     for (int i = 0; i < 5; i++)//循环读入5个数
10     {
11         scanf_s("%d", &tmp);//把每一个数读到变量t中
12         book[tmp]++;//进行计数
13     }
14 
15     for (int i = 0; i<=10;i++)//依次判断a[0]~a[10]
16     for (int j = 0; j <book[i]; j++)//出现了几次就打印几次
17         printf("%d", i);
18 
19     getchar();//用来暂停程序,以便查看程序输出的内容
20     return 0;
21     
22 }

  如果要实现从大到小排序,只需要将for(int i=0;i<=10;i++)改为for(int i=10;i>=0;i--)即可。

posted @ 2016-06-27 22:13  阿玛尼迪迪  阅读(462)  评论(0编辑  收藏  举报