题单:归并排序

样例 #1

样例输入 #1样例输出 #1

复制代码
2 5
4 7
2 4 5 7
1 3
2 6
1 2 3 6
1 2 2 3 4 5 6 7
1 2 2 3 4 5 6 7
cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int n,a[1000005],tmp[1000005]; 
void mearge(int l,int mid,int r)
{
	int i=l,j=mid+1,k=l;
	while(i<=mid&&j<=r)
	{
		if(a[i]<a[j]) tmp[k++]=a[i++];
		else tmp[k++]=a[j++];
	}
	while(i<=mid) tmp[k++]=a[i++];
	while(j<=r) tmp[k++]=a[j++];
	for(int i=l;i<=r;i++)
	{
		a[i]=tmp[i];
		cout<<a[i]<<" ";
	}
	cout<<endl;
}
void mearge_sort(int l,int r)
{
	if(l==r)
	{
		return ;
	}
	int mid=(l+r)/2;
	mearge_sort(l,mid);
	mearge_sort(mid+1,r);
	mearge(l,mid,r);
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	mearge_sort(1,n);
	for(int i=1;i<=n;i++)
	{
		cout<<a[i]<<" ";
	}
	return 0;
}
相关推荐
iAkuya1 分钟前
(leetcode)力扣100 58组合总和(回溯)
算法·leetcode·职场和发展
80530单词突击赢3 分钟前
C++关联容器深度解析:set/map全攻略
java·数据结构·算法
m0_561359673 分钟前
代码热更新技术
开发语言·c++·算法
兩尛10 分钟前
c++知识点1
java·开发语言·c++
冉佳驹18 分钟前
C++11 ——— 列表初始化、移动语义、可变参数模板、lamdba表达式、function包装器和bind包装器
c++·可变参数模板·移动构造·移动赋值·function包装器·bind包装器·lamdba表达式
xu_yule29 分钟前
算法基础—组合数学
c++·算法
爱尔兰极光30 分钟前
LeetCode--移除元素
算法·leetcode·职场和发展
Tansmjs42 分钟前
C++中的工厂模式变体
开发语言·c++·算法
naruto_lnq44 分钟前
多平台UI框架C++开发
开发语言·c++·算法
Tingjct1 小时前
十大排序算法——交换排序(一)
c语言·开发语言·数据结构·算法·排序算法