[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];
}
相关推荐
不做无法实现的梦~13 小时前
MAVLink 协议教程
linux·stm32·嵌入式硬件·算法
SamDeepThinking13 小时前
一个业务场景只需要一个ThreadLocal实例
java·后端·程序员
带刺的坐椅13 小时前
Solon 热加载与插件热插拔:Debug 模式 × E-Spi × H-Spi 全解析
java·solon·插件·plugin·热插拨
Rick199313 小时前
mysql联合索引经典实例
java·数据库·mysql
方也_arkling13 小时前
【Java-Day02】语法篇:变量/数据类型/标识符/运算符/类型转换
java·开发语言
.千余13 小时前
【C++】C++类与对象3:const成员函数与取地址运算符重载,权限管理的艺术
开发语言·c++
墨白曦煜13 小时前
算法实战笔记:剥开回溯算法的外衣——从通用模板到高阶去重(八)
笔记·算法
z2005093013 小时前
今日算法(回溯子集)(模版题)
数据结构·算法·leetcode
吴佳浩13 小时前
Vibe Coding 时代,研发经理为何越来越值钱?
算法·架构
学代码的真由酱13 小时前
WebSocket背景知识及简单实现-Java
java·websocket