数组中的逆序对(归并排序思想)

利用归并排序思想

这题没有看懂,转来暂存

(a) 把长度为4的数组分解成两个长度为2的子数组;

(b) 把长度为2的数组分解成两个长度为1的子数组;

(c) 把长度为1的子数组 合并、排序并统计逆序对 ;

(d) 把长度为2的子数组合并、排序,并统计逆序对;

在上图(a)和(b)中,我们先把数组分解成两个长度为2的子数组,再把这两个子数组分别拆成两个长度为1的子数组。接下来一边合并相邻的子数组,一边统计逆序对的数目。在第一对长度为1的子数组{7}、{5}中7大于5,因此(7,5)组成一个逆序对。同样在第二对长度为1的子数组{6}、{4}中也有逆序对(6,4)。由于我们已经统计了这两对子数组内部的逆序对,因此需要把这两对子数组 排序 如上图(c)所示, 以免在以后的统计过程中再重复统计。

接下来我们统计两个长度为2的子数组子数组之间的逆序对。合并子数组并统计逆序对的过程如下图如下图所示。

我们先用两个指针分别指向两个子数组的末尾,并每次比较两个指针指向的数字。如果第一个子数组中的数字大于第二个数组中的数字,则构成逆序对,并且逆序对的数目等于第二个子数组中剩余数字的个数,如下图(a)和(c)所示。如果第一个数组的数字小于或等于第二个数组中的数字,则不构成逆序对,如图b所示。每一次比较的时候,我们都把较大的数字从后面往前复制到一个辅助数组中,确保 辅助数组(记为copy) 中的数字是递增排序的。在把较大的数字复制到辅助数组之后,把对应的指针向前移动一位,接下来进行下一轮比较。

过程:先把数组分割成子数组,先统计出子数组内部的逆序对的数目,然后再统计出两个相邻子数组之间的逆序对的数目。在统计逆序对的过程中,还需要对数组进行排序。如果对排序算法很熟悉,我们不难发现这个过程实际上就是归并排序。

(0)

相关推荐

  • 编程语言树状数组小结

    前言 在近三周的时间内,我主要复习了线段树和树状数组.但是线段树在遇到一道压位黑题崩掉后就写不动了. 突发奇想,我决定给这段时间的复习内容写个总结.本蒟蒻实力有限,如果某些做法比较拉请谅解 本总结默认 ...

  • 「八大排序算法」16张图带你搞懂基数排序

    前言 在排序算法中,大家可能对桶排序.计数排序.基数排序不太了解,不太清楚其算法地思想和流程,也可能看过会过但是很快就忘记了,但是不要紧,幸运的是你看到了本篇文章.本文将通俗易懂的给你讲解基数排序. ...

  • 面试常见的四种算法思想,全在这里了

    贪心算法有很多经典的应用,比如霍夫曼编码(Huffman Coding).Prim 和 Kruskal 最小生成树算法.还有 Dijkstra 单源最短路径算法.第一步,当我们看到这类问题的时候,首先 ...

  • Python|图述冒泡

    引言 在"小鲤鱼历险记"中,小鲤鱼的绝活是吐泡泡,惹得好多人捧腹大笑,其实在数据算法的世界里,也有一个有趣的现象叫冒泡排序. 这个算法,顾名思义,就是保证每个数据像水中的水泡一样, ...

  • 剑指offer之数组中的逆序对

    剑指offer之数组中的逆序对

  • 塞斯·卡拉曼:《安全边际》中的30条重要思想

    塞思·卡拉曼是Baupost 基金公司总裁,对价值投资有深刻研究,代表作有<安全边际>,因脱销,在Ebay 和Amazon上卖到了2000 和1200 美元.由其管理的Baupost Gr ...

  • Python|删除有序数组中的重复项

    问题描述给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度.不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空 ...

  • 眼见不一定为实,宇宙中暗物质丛生,哲学思想可破解宇宙万象?

    哈喽,终于等到您,还好我没放弃!您终于来了!愿看文章的你,都能被这个世界温柔以待!愿你三冬暖,愿你春不寒:愿你天黑有灯,下雨有伞:愿你一路上,有良人相伴!喜欢就点个赞吧,欢迎评论.吐槽. 在宇宙中有着 ...

  • 《本草精荟》:温中降逆:丁香的功效与应用

    丁香为桃金娘科常绿乔木植物丁香的花蕾,又称公丁香.花蕾采集下来,干燥后像钉子一样,且香气甚浓,故此得名,也叫丁子香.而它果实成熟后,外形像鸡的舌头一样,所以叫鸡舌香,也叫母丁香.一般入药,多用其花蕾, ...

  • Power BI中如何实现类似Excel中的逆序坐标图?

    小勤:大海,Power BI里面怎么实现逆序刻度图?比如我想分析学生多次考试成绩的名次变化趋势,由于名次数据越小越好,比如第1名要好过第2名,所以,数据小的应该显示在数据大的上方.在Excel里,可以 ...

  • 掌握《九歌》中《国殇》的思想内容、艺术特点

    肖旭 <国殇>是<九歌>中具有特殊风格的一首诗,它的思想内容概括起来有两个方面: 一.这首诗以激越的感情,壮烈的战斗场面的描写,歌颂了楚国卫国将士们的英雄主义精神.诗一开始就描 ...

  • C#中怎样获取System.Drawing.Color的所有颜色对象并存到数组中

    场景 需要在生成一组多条曲线时,随机从一颜色数组中取颜色,至少一百种颜色以上. 而System.Drawing.Color自带140多种颜色 那么怎样将其自带的颜色对象取出并存在数组中. 注: 博客主 ...

  • 群众心目中好领导:有思想、有能力、有人缘、有干劲和有担当

    管建祥著<萤火虫教育>373:群众心目中好领导:有思想.有能力.有人缘.有干劲和有担当 不管是什么单位,不管是大单位还是小单位,也不管是什么类型的单位,都有一个特点,就是群众喜欢谈论和评价 ...