两行三列图可能排序数列
发布于 2016-12-16 20:44 223 次浏览 0 赞 来自 资源分享  

#include<stdio.h>

#include<string.h>

int main()

{

char S[7];

int N = 6;

int count = 0;

    int i, j;

char a;

gets(S);

//把空格放在能排好序的顺序的同一个格子中

for(i=0;i<N-1;i++)

{

if(S[i]=='*' && i<3)

{

printf("%d a\n",i);

a = S[i+3];

S[i+3]=S[i];

S[i]=a;


}else if(S[i]=='*')

{

printf("%d d\n",i);

a = S[i+1];

S[i+1]=S[i];

S[i]=a;

}

}

// printf("%s\n",S);

//计算逆序对

    for(i=0; i<N-1; i++)

        for(j=i+1; j<N; j++)

            if(S[i]>S[j])

            count++;

  //  printf("%d\n",count);

//跟原来的排好的序列逆序对比,

//A B C

//D E *

//所以原始为5,奇数,所以新数列得到为奇数的就能排好

if(count%2==1)

printf("1");

else

printf("0");

getchar();

return 1;

}


添加回复
回到顶部