归并排序和逆序对数量

技术归并排序和逆序对数量 归并排序和逆序对数量归并排序
#includeiostreamusing namespace std;
const int N = 100010;
int q[N];
int

归并排序和逆序对数量

归并排序

#包括牡蛎

使用命名空间标准;

常量整数N=100010

int q[N];

int tmp[N];

void merge_sort(int q[],int l,int r)

{

if(l=r)返回;

int mid=l r 1;

merge_sort(q,l,mid);

merge_sort(q,mid 1,r);

int k=0,i=l,j=mid 1;

而(我=中间j=r)

if(q[I]=q[j])tmp[k]=q[I];

else tmp[k]=q[j];

而(I=mid)tmp[k]=q[I];

而(j=r)tmp[k]=q[j];

对于(i=l,j=0;I=r;I,j)q[I]=tmp[j];

}

int main()

{

int n;

scanf('%d ',n);

for(int I=0;I n;(一)

{

scanf('%d ',q[I]);

}

merge_sort(q,0,n-1);

for(int I=0;I n;(一)

{

printf('%d ',q[I]);

}

}

1.先找中间的点,与快排不一样的是,他要求是位置在中间

2.分成左右两边,归并处理左右两边

3.归并排序,将左右两个有序序列合并成一个有序的序列

逆序对数量

#包含输入输出流

#包含cstring

#包含算法

使用命名空间标准;

typedef长长LL;

常量整数N=100010

int q[N],tmp[N];

LL merge_sort(int q[],int l,int r){ 0

if(l=r)返回0;

int mid=r l 1;

LL res=merge_sort(q,l,mid) merge_sort(q,mid 1,r);

int k=0,i=l,j=mid 1;

而(i=中间j=r)

{

if(q[I]=q[j])tmp[k]=q[I];

其他

{

res=中一1;

tmp[k]=q[j];

}

}

而(I=mid)tmp[k]=q[I];

而(j=r)tmp[k]=q[j];

对于(i=l,j=0;I=r;I,j)q[I]=tmp[j];

返回表示留数

}

int main()

{

int n;

scanf('%d ',n);

for(int I=0;I n;(一)

{

scanf('%d ',q[I]);

}

cout merge_sort(q,0,n-1);

返回0;

}

会产生逆序对只会在中间的的左右两边时,此时若我的值大于j的值,那么我后面的数的值必然会大于j的值。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/70025.html

(0)

相关推荐

  • CF1427A Avoiding Zero 题解

    技术CF1427A Avoiding Zero 题解 CF1427A Avoiding Zero 题解CF1427A Avoiding Zero 题解Content
    请将一个长度为 \(n\) 的数列

    礼包 2021年12月16日
  • BeetlSQL3.0.0如何轻松集成Spring

    技术BeetlSQL3.0.0如何轻松集成Spring这篇文章主要为大家展示了“BeetlSQL3.0.0如何轻松集成Spring”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下

    攻略 2021年12月22日
  • JavaScript中var与let的区别是什么

    技术JavaScript中var与let的区别是什么本篇文章给大家分享的是有关JavaScript中var与let的区别是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小

    攻略 2021年12月8日
  • MySQL数据库升级的坑有哪些

    技术MySQL数据库升级的坑有哪些这篇文章主要介绍“MySQL数据库升级的坑有哪些”,在日常操作中,相信很多人在MySQL数据库升级的坑有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”

    攻略 2021年10月28日
  • WPF设置列内容居左、中、右

    技术WPF设置列内容居左、中、右 WPF设置列内容居左、中、右Style内容Style x:Key="contentLeftStyle" TargetType="{x:Type TextBlock}"S

    礼包 2021年12月18日
  • canvas圆形进度动画(canvas绘制圆形代码)

    技术怎么使用Canvas绘制圆形这篇文章主要介绍“怎么使用Canvas绘制圆形”,在日常操作中,相信很多人在怎么使用Canvas绘制圆形问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使

    攻略 2021年12月21日