求助
  • 板块题目总版
  • 楼主Albet
  • 当前回复1
  • 已保存回复1
  • 发布时间2020/10/2 08:28
  • 上次更新2023/11/5 12:17:10
查看原帖
求助
275090
Albet楼主2020/10/2 08:28
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<iostream>
#include<cmath>
#include<cstdlib>
#include<ctime>
using namespace std;
int n,i,j,k,a[100010],c[100010],mid; 
void gbsoft(int l,int r){
	if(l==r)return;
	mid=(l+r)/2;
	gbsoft(l,mid);
	gbsoft(mid+1,r);
	i=l,j=mid+1;
	for(k=l;k<=r;k++){
		if(i<=mid && j<=r){
			if(a[i]<a[j]){
				c[k]=a[i];
				i++;
			}else{
				c[k]=a[j];
				j++;
			}		
		}else if(i>mid){
			c[k]=a[j];
			j++;
		}else{
			c[k]=a[i];
			i++;
		}
	}
	for(k=l;k<=r;k++){
		a[k]=c[k];
	}
	return;
}
int main(){
	cin>>n;
	for(i=1;i<=n;i++){
		cin>>a[i];
	}
	gbsoft(1,n);
	for(i=1;i<=n;i++){
		cout<<a[i]<<' ';
	}
	return 0;
}

2020/10/2 08:28
加载中...