fac2_11.java

来自「java 算法设计与分析的好资料.由王晓东先生主编.」· Java 代码 · 共 37 行

JAVA
37
字号
//本程序取自王晓东编著“算法分析与设计”第 53 页,例
//循环赛日程表分治算法
public class Fac2_11{
public static void table(int k,int[][] a)
  {
    int n=1;
    for(int i=1;i<=k;i++)n*=2;
    for(int i=1;i<=n;i++)a[1][i]=i;
    int m=1;
    for(int s=1;s<=k;s++)
    {
      n/=2;
      for(int t=1;t<=n;t++)
      for(int i=m+1;i<=2*m;i++)
      for(int j=m+1;j<=2*m;j++)
      {
       a[i][j+(t-1)*m*2]=a[i-m][j+(t-1)*m*2-m];
       a[i][j+(t-1)*m*2-m]=a[i-m][j+(t-1)*m*2];
      }
     m*=2;
    }
  }
public static void main(String args[])
  {
    int s[][],g=4;
    int m=1;
    for(int i=1;i<=g;i++)m*=2;
    s=new int[m+1][m+1];
    table(g,s);
    for(int i=1;i<=m;i++){
    for(int j=1;j<=m;j++)
    System.out.print(s[i][j]+"  ");
    System.out.println();
   }
  }
}
    

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?