当前位置: 首页 > news >正文

算法基础学习|02归并排序——分治

一、思路

(1)确定分界点:mid=(l+r)/2    ——这里和快排不同

(2)递归排序(left  right)

(3)归并——合二为一

时间复杂度nlogn

二、题目练习  

三、模板

归并排序

#include<bits/stdc++.h>
using namespace std;const int N=1e5+10;int q[N],tmp[N];
int n;void merge_sort(int q[],int l,int r)
{if(l>=r)return;int mid=l+r>>1;merge_sort(q,l,mid),merge_sort(q,mid+1,r);int k=0,i=l,j=mid+1;while(i<=mid&&j<=r)if(q[i]<=q[j])tmp[k++]=q[i++];else tmp[k++]=q[j++];while(i<=mid)tmp[k++]=q[i++];while(j<=r)tmp[k++]=q[j++];for(i=l,j=0;i<=r;i++,j++)q[i]=tmp[j];}int main()
{scanf("%d",&n);for(int i=0;i<n;i++)scanf("%d",&q[i]);merge_sort(q,0,n-1);for(int i=0;i<n;i++)printf("%d ",q[i]);return 0;
}

逆序对的数量

#include<iostream>
using namespace std;const int N = 1e5+10;
int q[N],tmp[N];
int n;
long long result=0;void merge_sort(int q[],int l, int r)
{if(l>=r)return;int mid=l+r>>1;merge_sort(q,l,mid),merge_sort(q,mid+1,r);int k=0,i=l,j=mid+1;while(i<=mid&&j<=r)if(q[i]<=q[j])tmp[k++]=q[i++];else{tmp[k++]=q[j++];result+=mid-i+1;}while(i<=mid)tmp[k++]=q[i++];while(j<=r)tmp[k++]=q[j++];for(int i=l,j=0;i<=r;i++,j++)q[i]=tmp[j];}int main()
{scanf("%d",&n);for(int i=0;i<n;i++)scanf("%d",&q[i]);merge_sort(q,0,n-1);printf("%lld",result);return 0;
}

http://www.xdnf.cn/news/216217.html

相关文章:

  • 封装js方法 构建树结构和扁平化树结构
  • 20_大模型微调和训练之-基于LLamaFactory+LoRA微调LLama3后格式合并
  • 水力压裂多裂缝扩展诱发光纤应变演化试验研究
  • 基于Mamba2的文本生成实战
  • 什么是 MCP?AI 应用的“USB-C”标准接口详解
  • AI赋能的问答系统:2025年API接口实战技巧
  • Vulkan与OpenGL的对比
  • 服务器主动发送响应?聊天模块如何实现?
  • 【Vue3/Typescript】合并多个pdf并预览打印,兼容低版本浏览器
  • CentOS NFS共享目录
  • 【GESP】C++三级练习 luogu-B2118 验证子串
  • 后验概率最大化(MAP)估计算法原理以及相具体的应用实例附C++代码示例
  • 源码编译安装LAMP
  • Python 3.12数据结构与算法革命
  • 实现使用Lucene对某个信息内容进行高频词提取并输出
  • 2025年04月29日Github流行趋势
  • TA学习之路——2.4 图形传统光照模型详解
  • HCIE证书失效?续证流程与影响全解析
  • Java 高级技术之Gradle
  • Ubuntu实现远程文件传输
  • C 语言 static 与 extern 详解
  • 海思SD3403边缘计算AI核心设备概述
  • 2025年欧洲西南部大停电
  • H3C ER3208G3路由实现内网机器通过公网固定IP访问内网服务器
  • 电流探头的消磁与直流偏置校准
  • 深入了解僵尸网络 IP:威胁与防范
  • Redis核心与底层实现场景题深度解析
  • 生物化学笔记:神经生物学概论04 视觉通路简介视网膜视网膜神经细胞大小神经节细胞(视错觉)
  • 故障诊断——复现github代码ClassBD-CNN(BDCNN)
  • BT136-ASEMI无人机专用功率器件BT136