螺旋数据结构 旋转式排列数据;矩阵旋转式排列递增的数据


螺旋数据结构的样子规则将

给出一个螺旋的维度n 按顺时针或者逆时针 方向将值递增;排列成n*n 的矩阵


n=2 时排列如下

1  4

2  3

n=3时排列如下

1  8  7

2  9  6

3  4  5

n = 4 时 排列如下:

1    12   11  10

2    13   16   9

3    14   15   8

4     5     6    7


伪代码如下思路

array[n][n] 存储此矩阵数据的数组;

调用 rotate(n,0); 即可填满数组,rotate 实现如下

function rotate (n, index) {

    if n < 0 {return;}

    i = j =index;

    if i ==0 && j ==0 {

               array[i][j] = 0; 

    }

    //从第一列往下 从  上-下   递增

    for ;i< n;j++ {       

        array[i][j] = array[i-1][j];

    }


    // 从最后一行递增;按行从  左 - 右 递增

    j++;

    for ;j <n; j++

        array[i][j] = array[i][j-1];

    }

     // 最后一列从  下往上  递减  条件中  j>=index

     i--;

     for ;i>=index;i--{

         array[i][j] = array[i+1][j];

     }

     // 从第一行 从  右-左        条件 j>index

     j--;

     for ;j>index;j--{

           array[i][j] = array[i][j+1];

     }

      rotate(n-2,index++);

}

...more

  • Author

    12 days ago | Profile | #

    Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.