这个排序为什么有问题?
  • 板块学术版
  • 楼主JackHu0117
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/5/28 18:47
  • 上次更新2023/10/28 00:26:26
查看原帖
这个排序为什么有问题?
647952
JackHu0117楼主2022/5/28 18:47
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int a[2000001],b[2000001];
void msort(int l,int r){
	if(l<=r) return;
	int mid=(l+r)/2;
	msort(l,mid);
	msort(mid+1,r);
	int i=l,j=mid+1,k=l;
	while(i<=mid && j<=r){
		if(a[i]<=a[j]){
			b[k]=a[i++];
		}else{
			b[k]=a[j++];
		}
		k++;
	}
	while(i<=mid) b[k++]=a[i++];
	while(j<=r) b[k++]=a[j++];
	for(int i=l;i<=r;i++) a[i]=b[i];
}
int n;
int main(){
	cin>>n;
	for(int i=0;i<n;i++) cin>>a[i];
	msort(1,n);
	for(int i=0;i<n;i++) cout<<a[i]<<' '; 
	return 0;
}
2022/5/28 18:47
加载中...