给定一个整数数组A=(a0,a1,…,an-1),若i<j且ai>aj,则<ai,aj>就为一个逆序对,例如数组(3,1,4,5,2)的逆序对有<3,1>,<3,2>,<4,2>,<5,2>。设计一个穷举算法求A中的逆序对的个数。
时间: 2024-05-25 22:17:21 浏览: 101
1.给出一个整数数组,求其中任意两个元素之差的最大值。
5星 · 资源好评率100%
可以使用暴力算法,对于每个数,遍历它后面的数,如果发现逆序对,计数器加一。
Python 代码如下:
def count_inversions(arr):
count = 0
for i in range(len(arr)):
for j in range(i+1, len(arr)):
if arr[i] > arr[j]:
count += 1
return count
arr = [3, 1, 4, 5, 2]
print(count_inversions(arr)) # 输出 4
阅读全文