Welcome 微信登录

首页 / 软件开发 / JAVA / 生成n*n蛇形矩阵的算法

生成n*n蛇形矩阵的算法2010-12-29在描述算法之前,先看看下面的5*5的表格:

1341011
2591219
68131820
714172124
1516222325

上面的表格很容易看出规律。就是从左上角第一个格开始(起始为1),然后延右上角到左下角的斜线。先从下到上,再从上到下。开始按数字递增排列。也就是说每一个斜线上分别有如下几组数字:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25

由于是先从上到下(1可以看做是从上到下),再从下到上,很象一条蛇,因此,该数字表格也可称为蛇形矩阵。现在要与一个方法(或函数),方法的参数是一个int类型,表示n,方法返回一个二维数组,表示要获得的往返接力数字表格。

实际上,这个算法并不复杂,只需要从分别获得1至n^2中每个数字对应的二维数组的坐标就可以了。先拿这个5行5列的表格来说,求出上面每组数组对应的坐标(起始位置为0)。

第0组

第1组

第2组

第3组

第4组

第5组

第6组

第7组

第8组
1

2 3

4 5 6

7 8 9 10

11 12 13 14 15

16 17 18 19

20 21 22

23 24

25
(0,0)

(1,0) (0,1)

(0,2) (1,1) (2,0)

(3,0) (2,1) (1,2) (0,3)

(0,4) (1,3) (2,2) (3,1) (4,0)

(4,1) (3,2) (2,3) (1,4)

(2,4) (3,3) (4,2)

(4,3) (3,4)

(4,4)