逆序对相关专题

逆序对相关的题目:

题目1: 逆序对模板题: https://www.acwing.com/problem/content/description/790/

题目2: 百练平台的重要逆序对:http://bailian.openjudge.cn/xly2018/E/

逆序对问题的处理方法:

1.(推荐): 分治法,归并排序的处理思路

2. 哈希+树状数组

注意: 个人比较推荐第一种逆序对的做法,比较具有普适性. 哈希+树状数组的做法在遇到一些特定的题目(e.g. 题目2)的时候会相对比较难以处理.

主要来讲一讲"分治法"

分治法的主要思路就是讲规模为n的问题拆分为左半部分和右半部分, 递归处理这两部分. 然后对这两部分进行合并(归并). 应用到逆序对中, 我们可以将整个序列的逆序对划分为以下3类:

1. 左半部分的逆序对

2. 右半部分的逆序对

3. 横跨两边的逆序对

其中1和2可以由递归函数处理得到,只需要考虑3如何统计.

常规的暴力统计的方法去统计3,复杂度是O(n^2). 复杂度高的原因: 没有充分利用序列信息.

注意到: 3是统计横跨两边的逆序对,与左半部分序列的内部顺序无关,右半部分同理.

事实上,我们可以规定我们的递归函数的副作用为: 对于一个序列,先做

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值