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