C++算法之排序(2)——冒泡排序

上次我们讲了桶排序,讲了它的缺点:数字太大用不了。所以,这次我来介绍另一种排序方法:冒泡。

冒泡的基本思想,就是把每个数字与下一个数字对比,如果顺序不符,就交换位置。

例如我们将3 4 1 5 2五个数从大到小排序。

首先比较1位和2位,因为3<4,不符,交换。现在队列变成4 3 1 5 2。

再来比较第二位与第三位,因为3>1,符合,不变。

继续比较第三位与第四位,因为1<5,不符,交换。队列变成4 3 5 1 2。

继续比较第四位与第五位,因为1<2,不符,交换。现在队列变成4 3 5 2 1。

到这里,我们已经把最小的归位了。以此类推,就可以把所有的归位。代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,a[10000];
    cin>>n;
    for(int i=1;i<=n;i++)
        cin>>a[i];
    //排序重要部分
    for(int i=1;i<=n-1;i++)
        for(int j=1;j<=n-i;j++)
            if(a[j]<a[j+1])swap(a[j],a[j+1]);
    for(int i=1;i<=n;i++)
        cout<<a[i]<<" ";
    return 0;//好习惯
 }

就是这样。不过,冒泡排序也有它的缺点,就是时间太长。

总结:冒泡排序可以解决桶排序的内存问题,但也会耗时间。

PS:c++排序篇未完待续!

Alex172

  蔡徐坤打篮球是怎么回事呢?蔡徐坤相信大家都很熟悉,但是蔡徐坤打篮球是怎么回事呢,下面就让小编带大家一起了解吧。   蔡徐坤打篮球,其实就是蔡徐坤打篮球,大家可能会很惊讶蔡徐坤怎么会打篮球呢?但事实就是这样,小编也感到非常惊讶。   这就是关于蔡徐坤打篮球的事情了,大家有什么想法呢,欢迎在评论区告诉小编一起讨论哦!

相关推荐

3 条评论

  1. 你居然用swap交换函数

  2. NSObject 23786

    ,,,system pause不是好习惯。。。。Linux压根用不了。

Leave a Reply

微信扫一扫

微信扫一扫

微信扫一扫,分享到朋友圈

C++算法之排序(2)——冒泡排序
返回顶部

显示

忘记密码?

显示

显示

获取验证码

Close