[YM]模板-归并排序

概念:

归并排序,其实是一种分治和递归算法

将大问题转化为一个个小问题处理,最终整合成一个大问题

模板:

cpp 复制代码
const int N = 2e5 + 5;
int a[N],b[N],n;

void mergeSort(int l, int r){
  if(l>=r) return;
  int mid=(l+r)>>1; 
  mergeSort(l,mid); mergeSort(mid+1,r);
  int i=l,j=mid+1,k=l;
  while(i<=mid&&j<=r){
    if(a[i]<=a[j])b[k++]=a[i++]; 
   	else b[k++]=a[j++];
  }
  while(i<=mid)b[k++]=a[i++];
  while(j<=r)b[k++]=a[j++];
  for(int i=l;i<=r;i++)a[i]=b[i];
}

void solve(){
    cin>>n;
    for(int i=1;i<=n;i++)cin>>a[i];
    mergeSort(1,n);
    for(int i=1;i<=n;i++)cout<<a[i]<<" \n"[i==n];
}
相关推荐
雪碧聊技术3 分钟前
深入理解 Java GC:从“房间清洁工”到解决系统卡顿实战
java·开发语言
宵时待雨9 分钟前
C++笔记归纳17:哈希
数据结构·c++·笔记·算法·哈希算法
大鹏说大话9 分钟前
Java并发编程核心:线程安全、synchronized与volatile的深度剖析
java·开发语言
迷藏49411 分钟前
# 发散创新:低代码开发新范式——用可视化逻辑构建企业级业务系统 在当今快速迭代的软件工程实践
java·python·低代码
JAVA+C语言13 分钟前
Java IO 流
java·开发语言
山川行20 分钟前
Python快速闯关8:内置函数
java·开发语言·前端·笔记·python·学习·visual studio
charlie11451419121 分钟前
嵌入式C++教程实战之Linux下的单片机编程:从零搭建 STM32 开发工具链(2) —— HAL 库获取、启动文件坑位与目录搭建
linux·开发语言·c++·stm32·单片机·学习·嵌入式
问好眼24 分钟前
《算法竞赛进阶指南》0x05 排序-1.电影
c++·算法·排序·信息学奥赛
Java基基24 分钟前
sdkman 一键切换 JDK 版本管理工具
java·开发语言·sdkman
CoderCodingNo26 分钟前
【GESP】C++八级考试大纲知识点梳理 (6) 图论算法:最小生成树与最短路
c++·算法·图论