离散化+树状数组解决逆序对问题

1、问题来源

​​​​​​剑指 Offer 51. 数组中的逆序对离散化+树状数组解决逆序对问题_第1张图片

 2、解决办法:

《1》使用暴力法,双层for循环,时间复杂度为O(n^2)

离散化+树状数组解决逆序对问题_第2张图片

 《2》借助归并排序来实现。

归并排序的原理就是将一个序列无限二分,直到每个部分只有一个元素,那这部分就是有序的了,再对两个元素进行比较排序,分别放入左半部分和右半部分;对左半部分和右半部分分别进行有序插入后合并,如此反复......

例如,我们现在有两个部分:

现在进行合并,对两个部分的第一个数进行比较。

因为 1 < 2,所以将 1 放入临时数组(也就是答案数组),这时临时数组只有一个元素

然后因为 3 > 2,所以将 2 放入临时数组,这时临时数组有两个元素

你可能感兴趣的:(算法,数据结构)