摘要: 什么是逆序对 逆序对就是如果$i>j&& a[i] <a[j]$,这两个数就是一个逆序对。其实换句话说,找到排在自己前面比自己大的数的个数。 给定一个$n$个数的序列,求解序列中逆序对的个数$n \leq 5 \times 105,a[i]\leq 109$。 输入样例 6 5 4 2 6 3 1 阅读全文
posted @ 2021-05-09 16:29 h星宇 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 归并排序 归并排序(Merge sort)是建立在归并操作上的一种有效排序算法,它是采用分治算法的一个典型的应用。时间复杂度为$O(NlogN)$,代价是需要额外的内存空间。 算法理解 我们可以先看一个图 归并排序的思想:我们先对输入数组一直进行对半拆分,直到区间内只有一个元素的时候,一个元素肯定是 阅读全文
posted @ 2021-05-09 16:26 h星宇 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 离散化有很大的局限性(目前以个人认知来说),几乎只适合在树状数组求逆序对使用。 离散化概念 离散化:把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。 通俗的说,离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小。 离散化实现 建立一个结构体包含$val$和$id$,$va 阅读全文
posted @ 2021-05-09 13:08 h星宇 阅读(176) 评论(0) 推荐(0) 编辑