c++十大排序之桶排序(最底下有解释,非常易懂)

本文介绍了如何使用C++实现桶排序算法,该算法适用于将10位运动员的成绩快速排序。通过创建一个大数组作为桶,将输入的数字分布到各个桶中,然后依次输出桶内元素,达到排序目的。程序示例展示了输入10个正整数,输出排序后的结果。桶排序在数据均匀分布时效率较高,是线性时间复杂度的排序方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:

张三是一位短跑教练,张三想用最快最简单的排序算法把今天10位参加测试的名次排出来假设每位运动员跑出来的成绩都是正整数你能帮张三写一个c++的程序让运动员快点知道名次吗?

输入:

十个需要排序的正整数。

输出:

十个排好序的正整数。

输入样例:

1 9 7 5 3 2 4 8 6 12

输出样例:

1 2 3 4 5 6 7 8 9 12

提示:

桶排序(因为桶排序速度快且非常简单)

源代码:

#include <bits/stdc++.h>//万能头文件 
using namespace std;
int main()//主函数 
{
    //1.根据数字范围确定数组大小并赋值
    int x[10001]={0};//把一维数组初始化让他从0开始 
    int a;
    //2.数据放入对应的桶数组,并统计
    
    for(int i=1;i<=10;i++)
    {
        
        cin>>a;//让用户从键盘输入10个数; 
        x[a]++;
    }
    
    //3.遍历桶数组,并输出数组的下标
    for(int i=1;i<=10001;i++)
    {
        for(int j=1;j<=x[i];j++)
        {
            cout <<i<<" ";
        }
    }
    
    
    return 0;
}

桶排序:

编辑分类

桶排序 (Bucket sort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。当要被排序的数组内的数值是均匀分配的时候,桶排序使用线性时间(Θ(n))。但桶排序并不是 比较排序,他不受到 O(n log n) 下限的影响

图解:

记得点赞👍! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值