题解
2025-06-08 08:22:27
发布于:江苏
1阅读
0回复
0点赞
#include<iostream>
using namespace std;
int n,a[1010],temp[1010];
void MergeSort(int l,int r){
	if(l==r){
        return ;
    }
	int mid=(l+r)/2;
	MergeSort(l,mid);
	MergeSort(mid+1,r);
	int i=l,j=mid+1,k=l;
	while(i<=mid&&j<=r){
		if(a[i]<=a[j]){
			temp[k++]=a[i++];
        }else{
			temp[k++]=a[j++];
        }
	}
	while(i<=mid){
		temp[k++]=a[i++];
    }
	while(j<=r){
		temp[k++]=a[j++];
    }
	for(int i=l;i<=r;i++){
        a[i]=temp[i];
    }
	for(int i=1;i<=n;i++){
		cout<<a[i]<<' ';
    }
	cout<<'\n';
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
    }
	MergeSort(1,n);
	return 0;
}
这里空空如也







有帮助,赞一个