算法基础篇

**算法基础,排序之桶装排序(简化版)。 **

**

基本思路

用桶标记每个数出现的次数,再将它们以次输出。
特性:适用于排序数值较小的数组排序。

代码实现如下

#include<stdio.h>

int main ()
{
	int book[1001];
	int i,j,t,n;
	for(i=0;i<1000;i++)
	book[i]=0;
	scanf("%d",&n); //输入一个数n表示接下来有n个数处理
	for(i=0;i<n;i++) //循环读入n个数,并进行桶排序
	{
		scanf("%d",&t); //把每个变量读入到变量t中
		book[t]++; //进行计数,对编号为t的桶标记
	}
	for(i=1000;i>=0;i--) //依次判断1000到0的桶
	for(j=1;j<=book[i];j++) //出现几次就打印几次
	printf("%d",i);
	getchar(); getchar();
	return 0;

输入数据验证

10
56 87 1000 0 19 890 999 10 748 8

运行结果

1000 999 890 748 87 56 19 10 8 0

备注

如果要实现从小到大排序
只需将

for(i=1000;i>=0;i--)

改为

for(i=0;i<=1000;i++)

就可以了。

发布了12 篇原创文章 · 获赞 0 · 访问量 725

猜你喜欢

转载自blog.csdn.net/weixin_43252204/article/details/83585286
今日推荐