beautyofprogramming的中国象棋将帅问题,哪个更高效?

最近在看这本书,里面关于这个问题给出了三个都非常有代表性的解法,但貌似分析起来,时间复杂度都一样的。有兴趣的同学可以一起探讨下。

核心代码:

解法一:

    for(;LGET(b) <= GRIDW * GRIDW;LSET(b,(LGET(b) + 1)))
          for(RSET(b,1);RGET(b) <= GRIDW*GRIDW;RSET(b,(RGET(b) + 1)))
               if(LGET(b) % GRIDW != RGET(b) % GRIDW)
                    printf("A = %d, B= %d\n",LGET(b),RGET(b));
               printf("%d\n",b);
解法二:
   while(i--){
          if(i/9%3 == i%9%3)
               continue;
          printf("A=%d,B=%d\n",i/9+1,i%9+1);
     }
 
解法三:
    for(i.a=1;i.a<=9;i.a++){
          for(i.b=1;i.b<=9;i.b++)
               if(i.a%3!=i.b%3){
                    printf("A=%d,B=%d\n",i.a,i.b);
               }
     }
  
 

posted on 2012-11-15 19:44  ywnbluesky  阅读(779)  评论(0)    收藏  举报

导航