问题标题: 酷町堂:3908 HELP!!!

0
0
已解决
汪宇航
汪宇航
新手启示者
新手启示者
#include <bits/stdc++.h>
#pragma GCC optimize(3)
#pragma GCC optimize(2)
using namespace std;
int c;
int n,m,a[2500005];
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
        scanf("%d",&a[i]);
    }
    //sort(a+1,a+1+n);
    for(int i=1;i<n;i++){
        bool f=0;
        for(int j=1;j<=n-i;j++){
            if(a[j]>a[j+1]){
                int r=a[j];
                a[j]=a[j+1];
                a[j+1]=r;
                f=1;
                ++c;
            }
        }
        if(!f){
            break;
        }
    }
    // for(int i=1;i<=n;i++){
    //     printf("%d ",a[i]);
    // }
    cout<<c;
    return 0;
}

TLE30,qiuZHU

汪宇航在2021-11-17 17:26:23追加了内容

d

汪宇航在2021-11-19 20:49:37追加了内容

我认为3908这道题,用普通冒泡来做肯定超时,毕竟是O(n的二次方嘛),于是我就想到了冒泡优化,没想到TLE30分,不知各位童鞋有什么别样的思路呢?

汪宇航在2021-11-19 21:03:19追加了内容

大家有好的建议吗?欢迎提出

汪宇航在2021-11-21 11:08:45追加了内容

ding


1
已采纳
丁博扬
丁博扬
中级天翼
中级天翼

可以从4011这题的答案改编

0
康曦
康曦
中级光能
中级光能

没必要这么算,可以先sort每个数排序后的位置,然后直接算次数

(不确定,没做过,口胡的)

0
我要回答