排序算法一:桶排序

Posted Yanky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序算法一:桶排序相关的知识,希望对你有一定的参考价值。

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

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

 

运行结果是:

 

以上是关于排序算法一:桶排序的主要内容,如果未能解决你的问题,请参考以下文章

排序算法——桶排序

桶排序算法

桶排序算法

每日一算法|桶排序---第十天

排序算法整理(啊哈算法)

十大经典排序算法总结(桶排序)