数组反序个数算法

给定一整型数组,若数组中某个下标值大的元素值小于某个下标值比它小的元素值,称这是一个反序。

即:数组a[]; 对于i < j 且 a[i] > a[j],则称这是一个反序。

给定一个数组,要求写一个函数,计算出这个数组里所有反序的个数。


int fun(int a[], int count)
{
    int i, j;
    int k = 0;

    for(i = 0; i < count; i++)
    {
        for(j = i + 1; j < count; j++)
        {
            if(a[i] > a[j])
            {
                k++;
            }
        }
    }
    return k;
}

此算法在vc6上验证通过,但是上述算法不是最好优化,最好优化的空间复杂度和时间复杂度都为O(N)。此算法需要继续优化。

:)


你可能感兴趣的:(数组反序个数算法)