求N個元素的逆序數

2022-05-31 18:45:07 字數 602 閱讀 4521

求n個元素的逆序數

解法一:窮舉,時間複雜度為o(n2)

解法二:使用歸併排序計算逆序數,時間複雜度o(n*lngn)

使用分治思想,以mid值將序列分為左序列(left->mid),右序列(mid+1->right)。將左右子串行排序好之後,進行合併。合併時獲得逆序數,因為左序列已經保證有序,當右序列的值小於左序列的值,逆序數 = (midel-li+1)。以此類推。

/**

* 利用歸併排序計算逆序數

* @param v 數字序列

* @param l 左邊界

* @param r 有邊界

* @return 左右邊界之間的逆序數

*/public static int findrev_order_num(int v,int l,int r)else if(len==1)

}elseelse

}while(i<=mid)

while(j<=r)

system.arraycopy(dp,0,v,l,dp.length);

return (leftnum+rightnum+mernum);

}return 0;

}

分治法求乙個N個元素陣列的逆序數

背景 逆序數 也就是說,對於n個不同的元素,先規定各元素之間有乙個標準次序 例如n個 不同的自然數,可規定從小到大為標準次序 於是在這n個元素的任一排列中,當某兩個元素的先後次序與標準次序不同時,就說有1個逆序。乙個排列中所有逆序總數叫做這個排列的逆序數。定義在乙個排列中,如果一對數的前後位置與大小...

求逆序數 逆序數 歸併排序

求排列的逆序數 分治 一 題目描述 總時間限制 1000ms 記憶體限制 65536kb 描述 在internet上的搜尋引擎經常需要對資訊進行比較,比如可以通過某個人對一些事物的排名來估計他 或她 對各種不同資訊的興趣,從而實現個性化的服務。對於不同的排名結果可以用逆序來評價它們之間的差異。考慮1...

NYOJ 求逆序數

時間限制 2000 ms 記憶體限制 65535 kb 難度 5 描述在乙個排列中,如果一對數的前後位置與大小順序相反,即前面的數大於後面的數,那麼它們就稱為乙個逆序。乙個排列中逆序的總數就稱為這個排列的逆序數。現在,給你乙個n個元素的序列,請你判斷出它的逆序數是多少。比如 1 3 2 的逆序數就是...