python逆序数怎么求_怎么算逆序数?急~~~!!!
生活随笔
收集整理的這篇文章主要介紹了
python逆序数怎么求_怎么算逆序数?急~~~!!!
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
展開全部
可使用直bai接計數法,計算一個du排列的逆序數的直接zhi方法是逐個dao枚舉逆序,同時統計個內數。
舉個例子:
標準列是容1 2 3 4 5,那么 5 4 3 2 1 的逆序數算法:
看第二個,4之前有一個5,在標準列中5在4的后面,所以記1個。
類似的,第三個 3 之前有 4 5 都是在標準列中3的后面,所以記2個。
同樣的,2 之前有3個,1之前有4個,將這些數加起來就是逆序數=1+2+3+4=10。
擴展資料:
其它算法:
1、歸并排序
歸并排序是將數列a[l,h]分成兩半a[l,mid]和a[mid+1,h]分別進行歸并排序,然后再將這兩半合并起來。在合并的過程中(設l<=i<=mid,mid+1<=j<=h),當a[i]<=a[j]時,并不產生逆序數;
當a[i]>a[j]時,在前半部分中比a[i]大的數都比a[j]大,將a[j]放在a[i]前面的話,逆序數要加上mid+1-i。因此,可以在歸并排序中的合并過程中計算逆序數。
2、樹狀數組
由于樹狀數組的特性,求和是從當前節點往前求,所以,這里要查詢插入當前數值之時,要統計有多少個小于該數值的數還沒插入,這些沒插入的數,都會在后面插入,也就形成了逆序數。
總結
以上是生活随笔為你收集整理的python逆序数怎么求_怎么算逆序数?急~~~!!!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何固定最小宽度_如何使用更新的HTML
- 下一篇: python ftp timeout_p