[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];
}
相关推荐
知无不研14 分钟前
c语言和c++中的静态关键字
开发语言·c++·静态关键字
豆瓣鸡21 分钟前
网关、服务 userId 透传
java·微服务·gateway
bksczm29 分钟前
Linux之信号量(POSIX标准)
java·开发语言
Devin~Y37 分钟前
电商场景下的Java面试实战:从Spring Boot微服务到Kafka、Redis与AI RAG
java·spring boot·redis·elasticsearch·spring cloud·微服务·kafka
吠品40 分钟前
PHP里取月份最后一天的几种方式
java·开发语言·eureka
星子yu41 分钟前
【学习】怎么学好数据结构
数据结构·学习
gugucoding1 小时前
2. 【Java】搭建Java开发环境
java·开发语言
2601_949818091 小时前
Vector从入门到应用(C++ STL动态数组万字全解
开发语言·c++
wang09071 小时前
自己动手写一个spring之MVC_3
java·spring·mvc
汉克老师1 小时前
GESP2026年6月认证C++八级( 第三部分编程题(1、线网建设))精讲
c++·最小生成树·排序·kruskal·并查集·gesp8级