js 統計逆序對的個數

2022-09-01 22:12:15 字數 708 閱讀 8516

1.分治思想,歸併排序思想

//

過程:先把陣列分割成子陣列,先統計出子陣列內部的逆序對的數目,然後再統計出兩個相鄰子陣列之間的逆序對的數目。在統計逆序對的過程中,還需要對陣列進行排序。如果對排序演算法很熟悉,我們不難發現這個過程實際上就是歸併排序

function inversepairs(data =)

let mid = math.floor((end - start) / 2)

let left = inversepairshelp(copy, data, start, start +mid)

let right = inversepairshelp(copy, data, start + mid + 1, end)

let i = start +mid

let j =end

let count = 0let indexcopy =end

while (i >= start && j >= start + mid + 1)

else

}for (; i >= start; i--)

copy[indexcopy--] =data[i]

for (; j >= start + mid + 1; j--)

copy[indexcopy--] =data[j]

return left + right +count

}}

逆序對的個數

對於陣列a 1.n 若有ia j 則對偶 i,j 稱為a的乙個逆序對。求陣列中逆序對個數,很簡單的思路是每個數和後面的數比較,這樣需要 n 2 的時間,如果採用歸併排序的思想最壞情況下需要o nlgn 1.分解a low.mid 和a mid 1.high 2.求解 3.合併,陣列a low.mid...

逆序對的個數

在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數p。並將p對1000000007取模的結果輸出。即輸出p 100000000 include include include include includeusing names...

LeetCode 統計陣列中逆序對的個數

題目描述 在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對.輸入乙個陣列,求出這個陣列中 的逆序對的總數p.並將p對1000000007取模的結果輸出.即輸出p 1000000007.note 2 n 50000 example 1 input nums 9,6,8,5...