测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A60986. 在一个数组中,如果两个元素 a[i] 和 a[j] 满足 i < j 且 a[i] > a[j] ,则 a[i] 和 a[j] 是一个逆 序对。 下面代码可以正确统计数组 a 区间 [l,r] 内的逆序对总数。1 cnt = 0

判断题

题目描述

在一个数组中,如果两个元素 a[i] a[j] 满足 i < j a[i] > a[j] ,则 a[i] a[j] 是一个逆 序对。 下面代码可以正确统计数组 a 区间 [l,r] 内的逆序对总数。

1 cnt = 0
2
3 def merge_count(a, l, m, r):
4
5  global cnt
6  i = l
7  j = m + 1
8
9  while i <= m and j <= r:
10   if a[i] <= a[j]:
11    i += 1
12   else:
13    cnt += (m - i + 1)
14    j += 1
15
16 if __name__ == "__main__":
17  a = [2, 4, 1, 3]
18  merge_count(a, 0, 1, 3)
19  print(f"跨区间逆序对数量:{cnt}")


选项(单选)