首页 > 代码库 > 排序算法一:桶排序

排序算法一:桶排序

  在我们的生活的这个世界到处都是被排序过的东西。站队的时候会按照身高排序,考试的名次需要按照分数排序,网上购物的时候会按照价格排序,电子邮箱中的邮件按照时间排序……可以说排序无处不在。今天简单讲讲最快最简单的排序——桶排序。

  尝试一下输入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

 

运行结果是:

技术分享

 

排序算法一:桶排序