算法題/求數組的逆序對

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

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章