归并排序和逆序对数量

技术归并排序和逆序对数量 归并排序和逆序对数量归并排序
#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)

相关推荐

  • 公务员报名要求,公务员省考报考条件要求

    技术公务员报名要求,公务员省考报考条件要求以2021年广西省考为例,报考要求为公务员报名要求:
    1.具有中华人民共和国国籍。
    2.拥护中华人民共和国宪法,拥护中国共产党领导和社会主义制度。
    3.具有良好的政治素质和道德品

    生活 2021年10月21日
  • 如何理解MultiScanner模块化文件扫描与分析框架

    技术如何理解MultiScanner模块化文件扫描与分析框架如何理解MultiScanner模块化文件扫描与分析框架,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个

    攻略 2021年11月25日
  • 抽油烟机品牌大全,抽油烟机什么牌子好用又实惠

    技术抽油烟机品牌大全,抽油烟机什么牌子好用又实惠⭐⭐⭐老梁谈家居抽油烟机品牌大全,每天都会更新关于装修的知识,关注、点赞、评论、私信,各种家居干货在等你⭐⭐⭐吸油烟机是每家每户必备的厨房电器,好的吸油烟机可以把炒菜过程当

    生活 2021年10月28日
  • Java自定义序列化行为的示例分析

    技术Java自定义序列化行为的示例分析这篇文章给大家分享的是有关Java自定义序列化行为的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。正常情况下,一个类实现java序列化很简单,只需

    攻略 2021年12月3日
  • C++中为什么不要在一条语句内声明类或枚举值的同时又定义该类型的变量

    技术C++中为什么不要在一条语句内声明类或枚举值的同时又定义该类型的变量这篇文章主要讲解了“C++中为什么不要在一条语句内声明类或枚举值的同时又定义该类型的变量”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小

    攻略 2021年11月29日
  • 硫酸除铁锈的化学方程式,出铁形成铁锈的化学方程式

    技术硫酸除铁锈的化学方程式,出铁形成铁锈的化学方程式2Fe+O2+2H2O=2Fe(OH)2然后再氧化:
    4Fe(OH)2+O2+2H2O=4Fe(OH)3
    但我们所见到的铁锈其实是Fe2O3的水合物硫酸除铁锈的化学方程

    生活 2021年10月28日