逆序对c++求解

有n个数a1,a2...,an,对于其中的两个数字想x,y,如果满足x出现在的位置在y出现的位置的前面并且x比y大,则称(x,y)为数组a的一个逆序对。请问数组a的逆序对一共有多少个。形式化的说,请求出有多少组(i,j)满足i<j并且ai>aj。

输入格式

        第一行一个整数n。

        接下来一行n个整数。

输出格式

        一个数,表示答案。

样例输入

        4

        4 2 3 1

样例输出

        5

样例解释

        5个逆序对分别为(4,2)(4,3)(4,1)(2,1)(3,1)。

数据范围

        对于30%的数据,保证n=3。

        对于100%的数据,保证2<=n<=1000,1<=ai<=n,并且每个数字都只会出现一次。

  • 9
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值