题单:归并排序

样例 #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;
}
相关推荐
知无不研10 分钟前
c语言和c++中的静态关键字
开发语言·c++·静态关键字
2601_949818091 小时前
Vector从入门到应用(C++ STL动态数组万字全解
开发语言·c++
汉克老师1 小时前
GESP2026年6月认证C++八级( 第三部分编程题(1、线网建设))精讲
c++·最小生成树·排序·kruskal·并查集·gesp8级
胖大和尚2 小时前
Linux 内核工程师、HPC工程师、C++工程师
c++·kernel·hpc
alphaTao2 小时前
LeetCode 每日一题 2026/7/6-2026/7/12
算法·leetcode
想吃火锅10052 小时前
【leetcode】56.合并区间js
算法·leetcode·职场和发展
imuliuliang2 小时前
可合并堆在多任务调度中的优势与实现技巧7
算法
学究天人2 小时前
数学公理体系大全:Comprehensive Collection of Mathematical Axiom Systems(卷6)
网络·算法·数学建模·动态规划·几何学·图论·拓扑学
wabs6662 小时前
关于动态规划【力扣72.编辑距离的思考】
算法·leetcode·动态规划
用户333239768842 小时前
我做了一个 RepoMind:让 AI 写架构前,先去看看真实开源项目
算法