桶排序

本文介绍了一种简单直观的排序算法——桶排序,并通过一个具体的例子详细展示了其工作原理及步骤。通过对一组学生分数的排序过程,阐述了桶排序的具体实现方式。

桶排序

例:给班上五位同学的考试成绩排序,成绩分别是2,3,3,5,8(满分十分),将分数从大到小进行排序,排序后:8 5 3 3 2
解题思路:
1、首先申请一个大小为11的数组int a[11],初始化数组a[0]~a[10]为0,表示这些分数还没人得过。
这里写图片描述
2、开始处理得分情况:第一个人分数是5,将a[5]的值在原来的基础上加1,即a[5]=1
这里写图片描述
3、第二个人的得分情况是3分
这里写图片描述
4、以此类推,最后发现a[0]~a[10]的数值也就是没个分数出现的次数,接下来只需要打印出来就好了
这里写图片描述
代码实现:

#include <stdio.h>
int main()
{
    int a[11],i,j,t;
    for (i=0; i<=10; i++)
        a[i]=0;//初始化为0
    for(i=1; i<=5; i++)//循环输入5个数
    {
        scanf("%d",&t);
        a[t]++;//计数
    }
    for(i=10; i>=0; i--)//依次判断
        for(j=1; j<=a[i]; j++)//打印
            printf("%d",i);
    getchar();//暂停程序
    getchar();
    return 0;
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值