文章目录
前言
本章目标
简化版桶排序
题目一
- 从小到大输出
#include <stdio.h>
int main()
{
int a[10], i, j, t;
for (i = 0; i <= 10; i++)
a[i] = 0; //初始化一维数组为0
for (i = 1; i <= 5; i++) //循环读入5个数
{
scanf("%d",&t); //把每一个数读入到变量t中
a[t]++; //进行计数
}
for (i = 0; i <= 10; i++)
for (j = 1; j <= a[i]; j++)
printf("%d ",i);
getchar(); getchar();
//这里的getchar();用来暂停程序,以便查看程序输出内容
//也可以用system("pause");等来代替
return 0;
}
- 从大到小排序
#include <stdio.h>
int main()
{
int a[10], i, j, t;
for (i = 0; i <= 10; i++)
a[i] = 0; //初始化一维数组为0
for (i = 1; i <= 5; i++) //循环读入5个数
{
scanf("%d",&t); //把每一个数读入到变量t中
a[t]++; //进行计数
}
//i就是输入的数值,a[i]就是i的个数
for (i = 10; i >= 0; i--) //改这里就可以决定是从大到小排序还是从小到大排序
for (j = 1; j <= a[i]; j++)
printf("%d ",i);
getchar(); getchar();
//这里的getchar();用来暂停程序,以便查看程序输出内容
//也可以用system("pause");等来代替
return 0;
}
题目二
从大到小输出。
#include <stdio.h>
int main()
{
int book[1001], i, j, t, n;
for (i = 0; i <= 1000; i++)
book[i] = 0;
scanf("%d",&n); //输入一个数n,表示接下来有n个数
for (i = 1; i <= n; i++)
{
scanf("%d",&t);
book[t]++;
}
for (i = 1000; i >= 0; i--)
for (j = 1; j <= book[i]; j++)
printf("%d ",i);
getchar(); getchar();
return 0;
}