首页 > 代码库 > 排序算法一:桶排序
排序算法一:桶排序
在我们的生活的这个世界到处都是被排序过的东西。站队的时候会按照身高排序,考试的名次需要按照分数排序,网上购物的时候会按照价格排序,电子邮箱中的邮件按照时间排序……可以说排序无处不在。今天简单讲讲最快最简单的排序——桶排序。
尝试一下输入n个0~1000之间的整数,将它们从大到小排序。
代码实现如下:
#include <stdio.h> int main() { //桶排序 //先确定变量 //赋初始值 //循环输入数值 //循环输出数值 printf("桶排序\n"); int book[1001], i, j, t, n; for (i = 0; i <= 1000; i++) book[i] = 0; //初始化为0 printf("请输入数值个数:"); scanf("%d", &n); for (i = 1; i <= n;i++) { //循环输入n个数 printf("第%d个数:",i); scanf("%d", &t); //把每个数读到变量t中 book[t]++; //进行计数 } printf("排序结果:\n"); for (i = 1000; i >= 0; i--) //依次判断编号1000~0的桶 for (j = 1; j <= book[i]; j++) //出现了几次就将桶的编号打印几次 printf("%d\t",i); getchar(); //用来暂停程序,以便查看程序输出的内容 getchar(); return 0; }
输入以下数据进行验证:
10
8 100 50 22 15 6 1 1000 999 0
运行结果是:
排序算法一:桶排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。