求救,归并排序编译不过去
查看原帖
求救,归并排序编译不过去
181715
gjh303987897楼主2021/10/12 16:09
#include<iostream>
#include<cstdio>
#define maxn 1000001 
using namespace std;
int n;
int a[maxn];
int r[maxn];
void div_sort(int l,int r){
	if(l==r) return;
	int mid=(l+r)/2;
	div_sort(l,mid); div_sort(mid+1,r);
	int k=l; int i=l,j=mid+1;
	while(i<=mid&&j<=r){
		if(a[i]<=a[j]){
			r[k]=a[i];i++;k++;
		}
		if(a[i]>a[j]){
			r[k]=a[j];j++;k++;
		}
	}
	while(i<=mid){
		r[k]=a[i];i++;k++;
	}
	while(j<=r){
		r[k]=a[j];j++;k++;
	}
	for(int i=l;i<=r;i++) a[i]=r[i];
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	div_sort(1,n);
	for(int i=1;i<=n;i++){
		printf("%d ",a[i]);
	}
	return 0;
}
2021/10/12 16:09
加载中...