蛇形遍历矩阵 50行JAVA代码实现 欢迎挑刺
来源:互联网 发布:网络的利与弊征文字少 编辑:程序博客网 时间:2024/05/15 01:46
蛇形排序矩阵的难点在于:
1,遍历时有部分是向下遍历(down),例如 data[i][j] ->data[i+1][j+1]->data[i+2][j+2],但是有时候是向上遍历(up),
例如data[i][j]->data[i-1][j-1]->data[i-2][j-2];
Ps: 据此可以写出snakedown() snakeup()来表示;
Ps: 对于遍历方向的切换通过两函数之间的调用可以解决;
2,控制后边界条件:
对于最左data[][0] 最右data[][n-1] 最上data[0][]最下data[n-1][];
起点data[n-1][0] 终点data[0][n-1]
左上拐点data[0][0] 右下拐点data[n-1][n-1];
ps:对于snakedown()向下,判断好最下和最右 ;对于snakeup()向上,判断好最左和最上;
Ps: 对于两个重要的拐点: 左上在snakeup()中 ,右下在snakedown()中一定要慎重,非常容易出错
public class Snake {
public static void main(String args[]) {int[][] datas = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 },
{ 13, 14, 15, 16 } };
snakeUp(datas, datas[0].length - 1, 0, datas[0].length);
}
public static void snakeUp(int[][] data, int row_id, int col_id, int size) {
int j = col_id;
int i = row_id; // 初始化从 data[n-1][0] 到data[0][n-1]
for (; j > 0 && i > 0; i--, j--) {
System.out.print(data[i][j] + " ");
}
System.out.print(data[i][j] + " ");
System.out.println();
if (i == 0) {
if (j == size - 1)
return;
j++;
}
if (j == 0) {
i--;
}
snakeDown(data, i, j, size);
}
public static void snakeDown(int[][] data, int row_id, int col_id, int size) {
int j = col_id;
int i = row_id; // 初始化从 data[n-1][0] 到data[0][n-1]
for (; j < size - 1 && i < size - 1; i++, j++) {
System.out.print(data[i][j] + " ");
}
System.out.print(data[i][j] + " ");
System.out.println();
if (j == size - 1) {
if (i == 0)
return;
i--;
}
if (i == size - 1) {
j++;
}
snakeUp(data, i, j, size);
}
}
输出结果:
13
9 14
15 10 5
1 6 11 16
12 7 2
3 8
4
- 蛇形遍历矩阵 50行JAVA代码实现 欢迎挑刺
- 蛇形矩阵Java实现
- 蛇形矩阵 java实现
- 蛇形矩阵 Java实现
- java实现蛇形矩阵
- 蛇形矩阵-Java代码示例
- 蛇形矩阵的java实现
- 蛇形矩阵的java实现
- (java)蛇形矩阵(递归实现)
- 蛇形矩阵的代码
- C++实现蛇形矩阵
- C++实现蛇形矩阵
- 数组蛇形矩阵实现
- 几个蛇形矩阵实现
- 蛇形矩阵实现算法
- Java打印蛇形矩阵
- 蛇形矩阵问题 java
- 蛇形矩阵(java)
- 怎么在vs2010里面成功编译Notepad++源码。
- 01 Linux
- MFC常用方法
- linux 下网速缓慢的解决办法
- Android入门:Handler
- 蛇形遍历矩阵 50行JAVA代码实现 欢迎挑刺
- Chrome Javascrip控制台的小启示
- Ubuntu 变为Mac OS X
- RandomAccessFile类的使用
- Python字符编码详解
- HDOJ 2842 - Chinese Rings
- 新浪电话面试印象深刻的一些问题
- 二分图匹配总结
- 我现在在编程上的瓶颈—程序人生