我有一个NxN单元网格(想象一下如下定义的二维数组Array [N] [N])。
哪个算法将从每个单元a [i] [j]计算每条路径到每个单元a [k] [l]其中:
答案 0 :(得分:1)
广度优先搜索将完全符合您的要求。生成所有路径时,没有最快的
答案 1 :(得分:0)
我假设您想要实际路径,而不仅仅是它们的数量。
您可以使用在{strong>相同路径中探索的顶点上设置visited
的{{3}}来实现它,并避免探索已在同一路径中发现的顶点路径。
伪码:
DFS(v,target,visited):
if (v == target):
print path to v from the initial sorce
return
visited.add(v)
for each vertex u such that u is a neighbor of v:
if (u is not in visited):
u.parent <- v
DFS(u,target,visited)
visited.remove(v)
调用with DFS(source,target,{})
[其中{}
为空visited
集合。