在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數。
在歸併排序的一次merge中,r[j-1]
法一(統計i的逆序數):
int merge(int *a,int p,int q,int r){ int n1=q-p+1,n2=r-q;
int *l=new int[n1+1],*r=new int[n2+1];
for(int i=0;i法二(統計j的逆序數):
int merge(int *a,int p,int q,int r)
{ int n1=q-p+1,n2=r-q;
int *l=new int[n1+1],*r=new int[n2+1];
for(int i=0;ir[j]) //l[i-1]<=r[j]
陣列中的逆序對(歸併排序)
題目 陣列中的逆序對 思路 典型的歸併排序 很好的題目 這是乙個歸併排序的合併過程,主要考慮合併兩個有序序列時,計算逆序對的個數!對於兩個公升序序列,設定兩個下標 前下標和後下標 初始化為前序列第乙個數字的下標和後序列第乙個數字的下標。如果前下標對應的值大於後下標對應的值,則有 前序列剩下的長度 個...
陣列中的逆序對(歸併排序)
題目描述 在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數p。並將p對1000000007取模的結果輸出。即輸出p 1000000007 輸入描述 題目保證輸入的陣列中沒有的相同的數字 資料範圍 對於 50的資料,size 1...
陣列中逆序對(歸併排序思想)
題目描述 在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數p。並將p對1000000007取模的結果輸出。即輸出p 1000000007 輸入描述 題目保證輸入的陣列中沒有的相同的數字 資料範圍 對於 50的資料,size 1...