題目:輸入一個數組,求出這個數組中的逆序對的總數
例如在數組中{7,5,6,4}中,一共存在5個逆序對,分別是(7,6),(7,5),(7,4),(6.4),(5,4).
解:該題目採用歸併排序的方式;
(a)把長度爲4的數組分解成連個長度爲2的數組{7,5} and {6,4}
(b)把長度爲二的數組分解爲長度爲一的數組{7} and {5} and {6} and {4}
(c)把長度爲一的數組合並、排序;同時統計逆序數對
(d)。。。。
分析:假設已經有兩個排好序的數組a1和a2;因爲之前處理形成a1和a2時,已經計算出了a1和a2內部的逆序數對了,而且 a1 和a2 間的逆序數對 始終存在且不變;現在 合併a1 和a2 ,排序,並統計累加 逆序數對 即可;