考虑一个整数数组 a。如果 i < j 且 A[i] > A[j],则对 (i,j) 称为 A 中的反转。
对于数组中的每个位置“i”,都有两个可能的候选者:a[i] 概率为 p[i] 和 a[i]+x 概率为 1-p[i]。
现在我必须计算预期的反转次数。给定每个索引 i 的 a[i] 和 p[i] 以及一个整数 x。
我知道 O(n^2) 方法(检查每个合法的可能对)。另外,我知道 O(nlogn) 方法来计算数组中的反转次数,其中所有元素都以 100% 的概率预先确定。它是通过修改归并排序来完成的。
我想知道一种比 n 平方更好的方法。请告诉我。