1 条题解

  • 0
    @ 2025-12-5 14:43:58
    #include <bits/stdc++.h>
    using namespace std;
    const int maxn=1e5+1;
    int a[maxn],n;
    
    //冒泡排序
    void maopao(){
        for(int i=1;i<n;i++){
            bool is=true;//假设逆序对没有
            for(int j=1;j<=n-i;j++){
                if(a[j]>a[j+1]){
                    swap(a[j],a[j+1]);
                    is=false;
                }
            }
            if(is) break;
        }
    }
    
    //选择排序
    void xuanze(){
        for(int i=1;i<n;i++){
            int midx=i;
            for(int j=i+1;j<=n;j++){
                if(a[j]<a[midx]) midx=j;
            }
            if(i!=midx) swap(a[i],a[midx]);
        }
    }
    
    //插入排序
    void charu(){
        for(int i=2;i<=n;i++){
            int k=a[i];
            int j=i-1;
            while(j>=1 && a[j]>k){
                a[j+1]=a[j];
                j--;
            }
            a[j+1]=k;
        }
    }
    
    int main(){
        cin >> n;
        for(int i=1;i<=n;i++) cin >> a[i];
        //
        //maopao();
        //xuanze();
        charu();
        //
        for(int i=1;i<=n;i++){
            cout << a[i] << " ";
        }
        //
        return 0;
    }
    
    • 1

    信息

    ID
    1221
    时间
    1000ms
    内存
    256MiB
    难度
    9
    标签
    (无)
    递交数
    37
    已通过
    4
    上传者