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

逆序对题解---利用归并排序解答

摘要:本文详细讲解了如何使用归并排序算法求解逆序对问题。首先介绍了归并排序的分治思想和递归实现原理,然后解释了逆序对的定义及其在归并排序合并过程中的统计方法。最后提供了完整的C++代码实现,展示了如何在归并排序过程中高效计算逆序对数量。

https://www.luogu.com.cn/problem/P1908https://www.luogu.com.cn/problem/P1908https://www.luogu.com.cn/problem/P1908

## 首先我们来讲一下归并排序

归并排序主要利用递归实现。

归并排序又叫分治法排序,那就是两个操作,分和治。

分就是将序列平均划分成两端再排序,

治就是将排好序的两部分通过比大小重新合并在一起,变成一段有序的序列。

分和治就是利用递归,粗略讲一下递归路径,一段序列先平分成两半,拿一段出来看接着平分成两段,直到最后这一段只有两个数,无法被平分了,就治,两个数比较大小排序,然后和另一部分排好序的继续比较排序,如此递归下去,最后到最开始的两大部分,因为之前已经排好序了,所以各自两段都是排好序的序列,再逐位比较,存放进数组内,此时这个 序列就是有序的序列了。

好,这时候有同学要问了,那这个归并排序那里实现了数逆序对呀?现在让我再讲一下逆序对,

逆序对 就是 位置 i < j 但是ai>aj,简而言之,就是大数在小数前面。给一个数列 问有多少对逆序对?

在归并排序中 ,我们再并的时候,也就是比较给两段有序数列排的时候,如果第一个序列的某个值大于了第二个序列的值,那么由于这些序列有序,那么第一个序列的值大于第二个序列的值,那第一个序列的这个值的后面的所有值都大于,逆序对的个数就是第一个序列这个数到这个序列的最后一个序列数的个数。

代码实现:

#include<bits/stdc++.h> using namespace std; const int N =5e5+5; int a[N],tmp[N]; long long ans; void merge_sort(int q[],int l,int r) { int mid= (l+r)/2; if(l>=r) return; merge_sort(q,l,mid); merge_sort(q,mid+1,r); int i=l,j=mid+1,k=0; while(i<=mid && j<=r) { if(q[i]>q[j]) { tmp[k++]=q[j++]; ans += mid-i+1;//逆序对的关键步骤 } else{ tmp[k++]=q[i++]; } } while(i<=mid) { tmp[k++]=q[i++]; } while(j<=r) { tmp[k++]=q[j++]; } for(int i=l,k=0;i<=r;i++,k++) { q[i]=tmp[k]; } } int main() { int n;cin>>n; for(int i=0;i<n;i++) { cin>>a[i]; } merge_sort(a,0,n-1); cout<<ans; }
http://www.jsqmd.com/news/1215773/

相关文章:

  • 如何判断液氮低温恒温器的质量
  • 【题解】P5827 点双连通图计数
  • 想了解重庆当地正规合规的GEO企业有哪些 这份清单帮你高效筛选
  • 江门蓬江空调维修上门|外机不启动检修 全易修家电专业加雪种靠谱 - 速递信息
  • 2026年7月最新徐州美度官方售后客户服务电话及线下网点地址 - 亨得利钟表维修中心
  • Genome Biology项目文章 | 山东大学董家强团队揭示玉米EMF2b-1通过PRC2招募调控胚乳细胞周期的分子机制
  • Kimi K3:智能的新前沿
  • LangChain与数据库的深度集成:Agent驱动的自然语言查询与可视化实践
  • 如何判断液氮低温恒温器的密封性能
  • 园区VOCs集群治理工程实践|越华环保集团绿岛RTO系统设计与落地分析
  • 外部体检系统对接技术方案
  • 2026合肥企业团建大巴包车超高性价比长短途出行 全城测评榜单 - 资讯焦点
  • Shell 基础核心:变量定义、环境配置与语法技巧全解析
  • 不同算力下 AI 视频生成效果对比:RTX4090 vs A100 实测差距有多大
  • 独立产品 AI 多模态交互架构:语音、图像与文本的统一入口
  • 芝柏中国官方售后服务中心|地址与联系电话权威信息声明(2026年7月最新) - 亨得利钟表维修中心
  • 2026吉他初学者怎么选琴的桶型?一篇文章讲清楚吉他缺角or圆角的区别
  • 人工智能与当下教育发展的关系:AI正在重新定义未来学习方式
  • Microsoft Office全家桶(Office+Project+Visio)
  • 实战测试10款降AI率网站:只选真正管用的那一款!
  • 宇舶中国官方售后服务中心|服务热线及全部维修详细地址权威信息公告(2026年7月更新) - 亨得利官方服务中心
  • 全链路压测的可观测性设计:压测流量和真实流量的染色区分
  • 突围!2026做动漫 IP 毛绒周边哪家强?五巨头助力品牌低成本抢占市场 - GrowUME
  • 【AI专栏】图解深度学习-AI infra工程师必知必会 - 第 04 章:训练 vs 推理
  • 点胶点钻机选型总踩坑?0.005mm重复定位精度如何实现?这份硬核指南讲透了
  • 泰格豪雅官网电话售后维修与保养服务权威公示(2026年7月最新) - 亨得利官方服务中心
  • 零基础到高阶:Coze扣子智能体创建与工作流搭建全链路实操指南
  • 国产处理器+加固设计,兴华恒成飞腾笔记本适合哪些应用场景?
  • 泰格豪雅中国官方售后服务中心|服务电话及详细网点地址权威信息通知(2026年7月更新) - 亨得利官方服务中心
  • 【AI数字人动作捕捉实战指南】:零基础到商用级精度的7步落地法