归并排序模板

归并排序模板

#include<bits/stdc++.h>
using namespace std;
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
int a[1000],n;
int b[1000];
void merge(int l,int mid,int r){
	int p = l , q = mid + 1;
	for(int i=l;i<=r;i++){
		if((q>r)||(p<=mid &&a[p]<=a[q])){
			b[i] = a[p];
			p++;
		}
		else b[i]=a[q++];
	}
	for(int i=l;i<=r;i++){
		a[i]=b[i];
	}
	
}
void merge_sort(int l,int r){
	if(l==r)return ;
	int mid = (l+r)/2;
	merge_sort(l,mid);
	merge_sort(mid+1,r);
	merge(l,mid,r);
}

int main(){
	IOS;
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
	}
	merge_sort(1,n);
	for(int i=1;i<=n;i++){
		printf("%d",a[i]);
	}	
	return 0;
} 
全部评论

相关推荐

07-09 18:28
门头沟学院 Java
写着提前批,结果还要实习4个月以上???
程序员牛肉:这种不用看,直接投了,面试的时候问对应的HR就行。有可能他们是直接复制的暑期实习的模板。
点赞 评论 收藏
分享
陈逸轩1205:才105 哥们在养生呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务