[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];
}
相关推荐
Yiyaoshujuku2 分钟前
化合物数据集API接口(数据结构及样例)
java·网络·数据结构
QiLinkOS3 分钟前
极客与商业思维的融合实践(1)
c语言·数据库·c++·人工智能·算法·开源协议
fu的博客6 分钟前
【数据结构16】图:基于邻接矩阵、邻接表实现DFS/BFS
数据结构·算法
阿正的梦工坊12 分钟前
【Rust】17-Send、Sync 与并发安全抽象
算法·安全·rust
plainGeekDev15 分钟前
算法刷题笔记:一维DP没那么难,状态想清楚就赢了一半
java·算法·面试
IceBing20 分钟前
还在一个个连接 Arthas?这个开源平台支持批量诊断 JVM
java
菩提树下的凡夫22 分钟前
新版OpenCV5.0在ONNX模型的推理应用
opencv·算法
坚果派·白晓明26 分钟前
鸿蒙PC】libuv适配:AtomCode Skills一站式指南
c语言·c++·华为·ai编程·harmonyos·atomcode
SL_staff26 分钟前
《如何用规则引擎替代if-else?JVS-Rules可视化编排比硬编码强在哪里?》
java·低代码·架构
c++之路29 分钟前
CMake 系列教程(五):进阶技巧
c语言·开发语言·c++