數組中的逆序對

題目:輸入一個數組,求出這個數組中的逆序對的總數

例如在數組中{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 ,排序,並統計累加 逆序數對 即可;

發佈了12 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章