循环移位方阵

//【习2.19】  循环移位方阵。
//采用一维数组,将数组看成环形。
/*
对于给定的一个数据元素序列,如{0,1,2,3,4},输出如下形式的循环移位方阵:
0  1  2  3  4  
1  2  3  4  0  
2  3  4  0  1  
3  4  0  1  2  
4  0  1  2  3
*/

public class Shift
{
     public static void main(String args[]) 
     {
         int table[] = {0,1,2,3,4}; //{7,4,8,9,1,5};
         
         System.out.println("左移:");
         for (int i=0;i<table.length;i++)
         {
             for (int j=0;j<table.length;j++)
                 System.out.print(table[(i+j)%table.length]+"  ");
             System.out.println();
         }

         System.out.println("\n左移:");
         for (int i=0;i<table.length;i++)
         {
             int j=i;
             do
             {
                 System.out.print(table[j]+"  ");
                 j=(j+1)%table.length;
             }while (j!=i);
             System.out.println();
         }

         System.out.println("\n右移方案一:");
         for (int i=table.length-1;i>=0;i--)
         {
             int j=i;
             do
             {
                 System.out.print(table[j]+"  ");
                 j=(j+1)%table.length;
             }while (j!=i);
             System.out.println();
         }

         System.out.println("\n右移方案二:");
         int i=0;
         do
         {
             int j=i;
             do
             {
                 System.out.print(table[j]+"  ");
                 j=(j+1)%table.length;
             }while (j!=i);
             System.out.println();
             i=(i-1+table.length)%table.length;
         }while(i!=0);
     }
}

/* 
程序运行结果如下:
左移:
0  1  2  3  4  
1  2  3  4  0  
2  3  4  0  1  
3  4  0  1  2  
4  0  1  2  3


左移:
0  1  2  3  4  
1  2  3  4  0  
2  3  4  0  1  
3  4  0  1  2  
4  0  1  2  3


右移方案一:
4  0  1  2  3  
3  4  0  1  2  
2  3  4  0  1  
1  2  3  4  0  
0  1  2  3  4


右移方案二:
0  1  2  3  4  
4  0  1  2  3  
3  4  0  1  2  
2  3  4  0  1  
1  2  3  4  0


左移:
7  4  8  9  1  5
4  8  9  1  5  7
8  9  1  5  7  4
9  1  5  7  4  8
1  5  7  4  8  9
5  7  4  8  9  1

右移方案一:
5  7  4  8  9  1
1  5  7  4  8  9
9  1  5  7  4  8
8  9  1  5  7  4
4  8  9  1  5  7
7  4  8  9  1  5

右移方案二:
7  4  8  9  1  5
5  7  4  8  9  1
1  5  7  4  8  9
9  1  5  7  4  8
8  9  1  5  7  4
4  8  9  1  5  7

*/


  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值