16得票3回答
如何在这种类型的迷宫中找到最短路径

Red Dot - Represents the initial location Black Dot - Already occupied Green - Free to occupy Destination - Boundry of the matrix [which means eith...

11得票1回答
邻接表表示法的时间复杂度是多少?

我正在通过这个链接查看邻接表表示法。 http://www.geeksforgeeks.org/graph-and-its-representations/ 我对以下代码的某些部分有一个简单的疑问:// A utility function to print the adjacenncy ...

9得票4回答
只有两种可能成本的完全图。从0到N-1的最短路径成本是多少?

给定一个完整的无向图,有N个顶点。除了K条边的费用为A外,其余的边费用都为A。这K条边的费用为B,并且您知道它们(以一组对的形式)。从节点0到节点N-1的最小费用是多少。 2 <= N <= 500k 0 <= K <= 500k 1 <= A, B <=...

8得票1回答
Dijkstra算法能够处理权重为0的图吗?

如果存在一张带权图G,且所有权重都为0,Dijkstra算法是否仍然能找到最短路径?若是,为什么? 根据我对算法的理解,如果没有边权,则Dijsktra算法会像普通BFS一样运行,但是我希望能有些澄清。

26得票1回答
解释BFS和DFS在回溯方面的含义

关于深度优先搜索的维基百科: 深度优先搜索(DFS)是一种用于遍历或搜索树、树结构或图的算法。在图的情况下,从根节点开始(选择某些节点作为根),沿每个分支尽可能远地探索,然后回溯。 那么什么是广度优先搜索? “一种算法,选择一个起始节点,检查所有节点并回溯,选择最短路径,选择相邻节点并回...

109得票8回答
广度优先搜索时间复杂度分析

遍历每个顶点相邻的边所需的时间复杂度是,假设为O(N),其中N是相邻边的数量。因此,对于V个顶点,时间复杂度变为O(V*N)=O(E),其中E是图中的总边数。由于将一个顶点从队列中添加或删除的时间复杂度为O(1),为什么要将其添加到BFS的总时间复杂度中,即O(V+E)?

23得票1回答
为什么BFS的复杂度是O(V+E)而不是O(V*E)?

这里有一些伪代码(请忽略我的风格) 从v1(已入队)开始:function BFS(queue Q) v2 = dequeue Q enqueue all unvisited connected nodes of v2 into Q BFS(Q) end // maybe min...

12得票1回答
BFS和DFS的目的是什么?

我学会了这些算法的工作原理,但它们用于什么呢? 我们使用它们来: 在图中找到特定节点或 查找最短路径或 在图中找到循环 吗? 它们都只是访问所有节点并标记它们已被访问,我不明白这样做的意义所在。 我有点迷失在我正在学习的东西中。

20得票3回答
使用BFS进行拓扑排序

广度优先搜索算法可用于查找图中的拓扑排序和强连通分量吗? 如果可以,应该如何实现?如果不行,为什么? 通常我们在这些问题中使用深度优先搜索,但是如果我尝试使用BFS实现会有什么问题呢? 类似这样的代码可以工作吗?def top_bfs(start_node): queue = [...

12得票1回答
DFS比BFS快的意义是什么?

在阅读有关深度优先搜索(DFS)与广度优先搜索(BFS)的内容时,我看到一个说法,即DFS比BFS更快,并且需要更少的内存。 我的实现是使用C++编写的,其中DFS使用堆栈,BFS使用队列。请问有人能够解释一下速度和内存要求的不同之处以及如何实现吗?