第1章第1节-最快最简单的排序-桶排序

本文介绍了桶排序算法,提供了一个C语言实现的例子。通过初始化桶并进行计数,然后依次输出桶中元素,实现排序。示例展示了如何对一组整数进行桶排序,输出了排序后的结果。
摘要由CSDN通过智能技术生成

/*桶的时间复杂度为O(M + N)*/

//#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); //把每一个数读到变量t中
//        a[t]++; //进行计数
//    }
//    for (i = 10; i >= 0; i--) //依次判断a[0]~a[10]
//        for (j = 1; j <= a[i]; j++) //出现了几次就打印几次
//            printf("%d ", i);
//    getchar(); getchar();
//    //这里的getchar();用来暂停程序,以便查看程序输出的内容
//    //也可以用system("pause");等来代替
//    return 0;
//}
/****************************************** 
示例输入:                                * 
5 3 5 2 8                                 * 
示例输出:                                * 
8 5 5 3 2                                 * 
*******************************************/ 
#include <stdio.h>
int main()//最终桶排序的时间复杂度为 O(m+n)
{
    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++)//循环读入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                                        * 
8 100 50 22 15 6 1 1000 999 0             * 
示例输出:                                * 
1000 999 100 50 22 15 8 6 1 0             * 
*******************************************/ 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员Realeo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值