suyisprite

fiona

常用链接

统计

最新评论

巡回置换算法

/*xun hui zhi huan suan fa:
i=1,2,3,4,5,6,7;
p[i]=4,7,3,1,2,5,6;
when k in [1...n]
k=p[...p[k]...]

when k=1,p[1]=4,p[4]=1
when k=2,p[2]=7,p[7]=6,p[6]=5,p[5]=2
when k=3,p[3]=3
when k=4,p[4]=1,p[1]=4
...
when k=7,p[7]=6,p[6]=5,p[5]=2,p[2]=7   */

main()
{int x,k;
int p[]={4,7,3,1,2,5,6};
/* system("cls"); */
clrscr();
for(k=1;k<=7;k++)
 {x=k;
 printf("\n when k=%d,",x);
 do
 {
 printf("p[%d]=%d,",x,p[x-1]);
  x=p[x-1];

 }while(x!=k);/* while(x!=p[x-1]) 此时的p[x-1]同上一部的p[x-1]不同,因为x变化了,所以比用(x!=k)会提前一步结束do-while循环 */

 };
getch();
}

posted on 2007-11-08 11:43 fiona 阅读(1161) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: