#include<bits/stdc++.h>

using namespace std;

#define maxn 500

int arr[maxn],help[maxn];

void merge(int l,int m,int r){

    int i=l;

    int a=l,b=m+1;

    while(a<=m&&b<=r){

        help[i++]=arr[a]<arr[b]?arr[a++]:arr[b++];

    }

    while(a<=m){

        help[i++]=arr[a++];

    }

    while(b<=r){

        help[i++]=arr[b++];

    }

    for(int j=l;j<=r;j++){

        arr[j]=help[j];

    }

}

void mergesort(int l,int r){

    if(l==r) return;

    int m=(l+r)>>1;

    mergesort(l,m);

    mergesort(m+1,r);

    merge(l,m,r);

}

int main(){

    int n;

    cin>>n;

    for(int i=1;i<=n;i++){

        cin>>arr[i];

    }

    mergesort(1,n);

    for(int i=1;i<=n;i++){

        cout<<arr[i]<<" ";

    }

    return 0;

}

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐