如果我们希望覆盖一个搜索空间,比如对于所有三元组(x, y, z)
,where x
, y
, and在andz
之间,我们可以使用嵌套循环来做到这一点:1
n
for (int x = 1; x <= n; x++)
for (int y = 1; y <= n; y++)
for (int z = 1; z <= n; z++)
这会生成三元组:(1, 1, 1)
, (1, 1, 2)
, (1, 1, 3)
, (1, 1, 4)
, 等等...,并且实际上是“深度优先搜索”或深度优先迭代。
有没有办法以更“广度优先”的方式进行迭代?这样的迭代将按类似于以下的顺序生成三元组:
(1, 1, 1)
, (2, 1, 1)
, (1, 2, 1)
, (1, 1, 2)
, (2, 2, 1)
, (2, 1, 2)
, (1, 2, 2)
, (2, 2, 2)
, (3, 1, 1)
, 等等...
是否还有生成这种模式的算法的名称?