《劍指offer》 統計陣列中逆序對的個數

2021-08-15 01:49:11 字數 875 閱讀 7972

/*

* 在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。

* 輸入乙個陣列,求出這個陣列中的逆序對的總數p。

* 並將p對1000000007取模的結果輸出。 即輸出p%1000000007

* 例如輸入:1,2,3,4,5,6,7,0 輸出:7

* */

public class inversepairs }}

return count % 1000000007;

}/*引用歸併排序(分治法)的思想:

*不斷地將陣列分解,先分別統計分解後的兩個子串行(每個子串行要有序)可構成的逆序對數,

*再統計兩個子串行之間可構成的逆序對數

*/public int inversepairs2(int array)

public long inversepairs3(int array, int phead, int ptail)

public long inversepairsbetweentwoarrays(int array, int phead, int pmiddle, int ptail)

else

} while(j >= pmiddle + 1)

while(i >= phead)

k = 0;

for(int p = phead;p <= ptail;p ++)

return count; }

public static void main(string args) ;

system.out.println(new inversepairs().inversepairs2(array));

}}

劍指offer 陣列中的逆序對

在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數。解法一 乙個數字能不能構成逆序對,關鍵看後面有幾個比他小的數字。根據這個思路,我們可以從後向前遍歷整個陣列。並用乙個大小為10的陣列,分別來儲存從後向前遍歷陣列時0 9每個數字...

劍指offer系列 陣列中逆序對

題目描述 輸入乙個陣列,求出其中逆序對的總個數 示例 輸入 逆序對有,幾種情況 因此輸出5 分析 利用歸併排序的思想進行排序,時間複雜度o nlgn int inversepairscore vector nums,vector copy,int begin,int end int mid begi...

劍指offer 陣列中的逆序對

題目描述 在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數。class solution vector tmp len int res mergesort data,tmp,0,len 1 return res private...