C++排序(一)——桶排序
本文最后更新于 481 天前,其中的信息可能已经有所发展或是发生改变。

大家好,我今天来介绍c++排序之——桶排序。

桶排序,是(我认为)最简单的排序,其原理很简单。

比如有5个数2,4,3,3,5,那么我们就建立一个数组n[6],n[a]就代表这些数中有n[a]个a。

for(int i=0;i<6;i++){
    cin>>a;
    n[a]++;
}

在这样一个循环结束以后,n数组:

n[0]  n[1]  n[2]  n[3]  n[4]  n[5]
 0     0      1     2     1    1

这样,我们输出就可以了。

for(int i=0;i<6;i++) {
   //因为数列中有n[a]个a,所以输出n[a]个a即可
   for(j=1;j<=n[i];j++)
       cout<<i<<" ";
}

完整的模版代码如下:

#include<bits/stdc++.h>
using namespace std;
int n[此处填写排序数中最大的数以上的数];
int a;//这是排序输入的数字。
int main(){
    for(int i=1;i<=排序的数的数量;i++){
         cin>>a;
         n[a]++;
    }
    for(int i=1;i<=排序数中最大的数;i++)
        for(j=1;j<=n[i];j++)
            cout<<i<<" ";
    return 0;
}

看,是不是很简单?但是,它也有它的缺点:每个数不能太大,不然会爆内存。

总结:桶排序,最简单的排序,但是排序的数不能太大,内存会爆。

PS:C++排序没有结束!我将会用4~5个博文把排序讲完。

版权声明:本文为博主Alex172原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://nth.ink/cpp/P218.html

(广告由我们的赞助商提供,内容与本站无关)
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇