检测排列符号的简单代码

Wir*_*nto 2 algorithm

假设我有一个整数数组:

1 2 5 3 7 6
Run Code Online (Sandbox Code Playgroud)

什么是足够简单的算法来确定这是按排序方式排列的数字的偶数还是奇数排列(即1 2 3 5 6 7)?性能在这里并不是特别重要;我宁愿有一个简单的代码。

Say*_*iss 5

简单代码(假设数组a中存储n个数字):

int f()
{
    int cnt=0;
    for(int i=0;i<n;i++)
        for(int j=i+1;j<n;j++)
            if (a[i]>a[j]) cnt++;
    return cnt%2;
}
Run Code Online (Sandbox Code Playgroud)

如果f()返回0,那么它是偶排列,如果返回1,那么它是奇排列。