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]))