【发布时间】:2014-02-22 18:52:24
【问题描述】:
我想知道解决标题中列出的问题的算法的名称,或者解释如何做到这一点,我会尽量仔细解释,考虑一下:
9 8 6
7 5 3
4 2 1
它表示一个 3 x 3 的网格,我想按照此处注明的顺序遍历网格。右下为原点 (0, 0),左上为 (2, 2)。
所以在坐标中遍历看起来像:
- (0, 0) [1 级]
- (1, 0) [2 级]
- (0, 1) [2 级]
- (2, 0) [3 级]
- (1, 1) [3 级]
- (0, 2) [3 级]
- (2, 1) [4 级]
- (1, 2) [4 级]
- (2 ,2) [5 级]
级别表示某种迭代。
此外,如果可以使用 java 甚至 java 8 以一种很好的方式生成它,那么我会很高兴看到它,因为我认为它作为一种幼稚的循环方法更好。
我想用它来为图形应用程序生成地形,就像传统的迭代方法(循环宽度,循环深度)一样,它会创建“奇怪的”随机模式,至少不是我想要的。
给定输入n,我想我对伪代码有一个想法:
while x < 2 && y < 2
do
"iterate over elements to the top right if they exist"
if (x < 2) x++
else
if (y < 2) y++
这将导致预期的迭代。
【问题讨论】:
-
这种简单程度的算法不会有名称。
-
到目前为止你有什么?
标签: java algorithm math language-agnostic grid