问题:计算阵列中每个元素的反转次数
反转:对于[i]>中的数组反转中的任何元素,发生。 a [j]和i< Ĵ
假设我们将一个数组作为用户的输入, 我必须为每个元素计算每个元素发生了多少次反转并将它们存储在另一个数组中 例如。 **
int [] Array = {2,1,4,3}; **
预期的答案数组是
{1,0,1,0}
因为2有1个反转对,即(2,1)
1没有反转对....所以
虽然我知道怎么算总数没有。数组的反转
public int number_inversions(int a[],int n)
{
int count=0;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]>a[j])
{count++} ;
}
}
return count;
}
同样的问题也可以通过mergesort
来解决我想知道的是我如何只通过遍历和比较来获得我想要的数组而不必使用任何排序技术 是否可能?