1.X的逆序:序列中在X之前且比X大的数的个数和。
2.序列的逆序:序列中所有X的逆序的和
3.而在归并排序的Merge函数中,
void Merge(int low,int mid,int high)
{
int i = low;
int j = mid+1;
int k = low;
while(i<=mid&&j<=high)
{
if(a[i]<=a[j])
id[k++]=a[i++];
else //a[i]在a[j]之前比a[j]大
{
id[k++]=a[j++];
ans+=mid-i+1; //包括a[i],在a[j]之前比a[j]大的数为 mid-i+1,ans+=即可
}
}
while(i<=mid)
{
id[k++] = a[i++];
}
while(j<=high)
{
id[k++] = a[j++];
}
for(int l=low;l<=high;l++)
a[l] = id[l];
}