排序算法(一)桶排法

 

排序算法(一)桶排法

  --转自啊哈磊【坐在马桶上看算法】算法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--)即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值