[数算MOOC]求逆序对(归并排序)

首先介绍归并排序,它是指对一个数组,划分为两个。对两个数组分别排序,两个数组排序好后合并。

合并的过程为:从两个数组取第一个数,下标i,j,比较,数值比较小的复制到一个辅助数组中,然后下标++即可。如果有一个数组提前结束,把另外一个数组复制到辅助数组中。然后把辅助数组复制给原数组即完成排序。通过递归,很容易实现。

利用归并排序求逆序对该怎么求呢?

已经排序好的数组逆序对为0(废话)

两个数组归并,如果左数组中的元素a[i]大于右数组a[j],归并数组则的逆序对+mid-i+1即可(a[i]右面的左数组元素都大于a[j])

这样累加即可


题目描述


总时间限制: 
500ms 
内存限制: 
65536kB
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值