python2.7
在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。给你一个数组,求出这个数组中逆序对的总数。
概括:如果a[i] > a[j] 且 i < j, a[i] 和 a[j] 构成一个逆序对。
样例
序列 [2, 4, 1, 3, 5] 中,有 3 个逆序对 (2, 1), (4, 1), (4, 3),则返回 3 。
思路:最简单的想法,扫描整个数组,时间复杂度O(n^2),后续改进
#coding:utf-8
def get_nixudui(a):
count = 0
arr = []
for i in range(len(a)):
for j in range(i+1,len(a)):
if a[i] > a[j]:
arr.append([a[i],a[j]])
count += 1
return arr
print(get_nixudui([7,5,6,4]))