当前位置:网站首页>逆序对的数量
逆序对的数量
2022-08-04 22:33:00 【Ding Jiaxiong】
题目
给定一个长度为 n 的整数数列,请你计算数列中的逆序对的数量。
逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i<j 且 a[i]>a[j],则其为一个逆序对;否则不是。
输入格式
第一行包含整数 n,表示数列的长度。
第二行包含 n 个整数,表示整个数列。
输出格式
输出一个整数,表示逆序对的个数。
数据范围
1≤n≤100000,
数列中的元素的取值范围 [1,109]。
输入样例:
6
2 3 4 5 6 1
输出样例:
5
思路分析
题解
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
typedef long long LL;
const int N = 100010;
int n;
int q[N],tmp[N];
LL merge_sort(int l , int r){
if(l >= r){
return 0;
}
int mid = (l + r) / 2;
LL res = merge_sort(l , mid) + merge_sort(mid + 1,r);
//归并的过程
int k = 0 , i = l , j = mid + 1;
while(i <= mid && j <= r){
if(q[i] <= q[j]){
tmp[k++] = q[i ++];
}
else{
tmp[k++] = q[j ++];
res += mid - i + 1;
}
}
while(i <= mid){
tmp[k ++] = q[i ++];
}
while(j <= r){
tmp[k ++] = q[j ++];
}
for(int i = l , j = 0 ; i <= r; i++ , j ++){
q[i] = tmp[j];
}
return res;
}
int main(){
cin >> n;
for(int i = 0; i < n; i++){
cin >> q[i];
}
cout << merge_sort(0 , n - 1) << endl;
return 0;
}
边栏推荐
- DREAMWEAVER8 部分问题解决方案
- 中国的顶级黑客在国际上是一个什么样的水平?
- 软件测试技术之如何编写测试用例(4)
- The upgrade and transformation plan of the fortress machine for medium and large commercial banks!Must see!
- 视频gif如何制作?试试这个视频制作gif神器
- How to make a video gif?Try this video making gif artifact
- The Record of Reminding myself
- Oracle使用expdp和impdp导出导入数据
- rk3399 驱动屏参的几种方式
- 线上虚拟展馆展示具有哪些优势
猜你喜欢
【社媒营销】WhatsApp Business API:您需要知道的一切
Open source summer | Cloud server ECS installs Mysql, JDK, RocketMQ
BUG | 接口返回异常数据
Use ngrok to optimize web pages on raspberry pi (1)
力扣19-删除链表的倒数第 N 个结点——链表
移动web开发03
【论文笔记KDD2021】MixGCF: An Improved Training Method for Graph Neural Network-based Recommender Systems
力扣24-两两交换链表中的节点——链表
视频gif如何制作?试试这个视频制作gif神器
【游戏建模模型制作全流程】ZBrush蜥蜴模型雕刻教程
随机推荐
2022精选最新金融银行面试真题——附带答案
QT 子窗口—>主窗口 信号和槽的交互
CountDownLatch使用及原理
rk3399 驱动屏参的几种方式
期货开户哪个平台好,要正规安全的
【组成原理 六 存储器类型】
1、网页结构
Redisson
剑指Offer | 数值的整数次方
字节跳动秋招提前批高频面试问题汇总!(内附答案!)
祝福一路顺风
One trick to cure pycharm DEBUG error UnicodeDecodeError: 'utf-8' codec can't decode
As hot as ever, reborn | ISC2022 HackingClub White Hat Summit was successfully held!
Oracle增加表空间解决ORACLE ORA-01653: unable to extend table报错
Qt面试题整理
Latex快速插入作者ORCID
边缘检测——(纯享版)
力扣24-两两交换链表中的节点——链表
【3D建模制作技巧分享】ZBrush如何使用Z球
The use and principle of CountDownLatch