469得票15回答
选择深度优先搜索(DFS)和广度优先搜索(BFS)之间需要考虑哪些实际因素?

我了解DFS和BFS之间的差异,但我想知道在选择DFS vs BFS时需要考虑哪些因素。 比如避免在非常深的树上使用DFS等。

453得票14回答
检测有向图中循环的最佳算法

有没有一种高效的算法可以检测有向图中的循环? 我有一个表示需要执行的作业安排的有向图,其中作业是节点,依赖关系是边。我需要检测出图中存在循环依赖导致错误的情况。

246得票10回答
何时应使用Kruskal算法而不是Prim算法(反之亦然)?

我想知道何时应该使用Prim算法和Kruskal算法来寻找最小生成树?它们都有易于理解的逻辑,相同的最坏情况,并且唯一的区别是实现可能涉及略微不同的数据结构。那么决定性因素是什么?

233得票17回答
在有向图中查找所有环路

如何找到(遍历)从/到给定节点的有向图中的所有环? 例如,我想要像这样的东西:A->B->A A->B->C->A 但不包括: B->C->B

196得票13回答
为什么Dijkstra算法不能处理负权重边?

请问为什么Dijkstra算法用于单源最短路径时假设边的权值必须非负。 我指的是只有边没有负权重环的情况。

194得票9回答
为什么深度优先搜索和广度优先搜索的时间复杂度都是 O(V+E)?

BFS的基本算法:set start vertex to visited load it into queue while queue not empty for each edge incident to vertex if its not visited ...

121得票17回答
图算法:查找任意两个顶点之间的所有连接。

我正在尝试确定最有效的算法来完成以下描述的任务。 我有一组记录。对于这组记录,我有连接数据,它指示此集合中的记录成对连接在一起的方式。这基本上表示一个无向图,其中记录是顶点,连接数据是边缘。 集合中的所有记录都有连接信息(即不存在孤立的记录;集合中的每个记录都连接到另一个或多个记录)。 ...

114得票11回答
为什么在寻找图中的循环时使用DFS而不是BFS?

主要情况下,DFS 用于在图中查找循环,而不是 BFS。有什么原因呢?两者都可以在遍历树/图时查找节点是否已经被访问。

99得票11回答
在一个图中找到访问特定节点的最短路径。

我有一个大约有100个节点和200条边的无向图。其中一个节点标记为“起点”,一个标记为“终点”,还有大约十几个节点被标记为“必经之路”。 我需要找到通过这个图的最短路径,从“起点”开始,以“终点”结束,并且经过所有“必经之路”的节点(无论顺序如何)。 (该图代表了宾夕法尼亚州兰开斯特的一个...

90得票11回答
查找两个图节点之间的所有路径

我正在实现Dijkstra算法,以检索路由网络上互连节点之间的最短路径。我已经成功实现了算法。当我将起始节点传递到算法中时,它返回所有节点的最短路径。 我的问题是: 如何从节点A检索到节点G的所有可能路径,或者甚至是从节点A返回到节点A的所有可能路径?