要在未加权图表上实现Dijkstra的最短路径算法,使其以线性时间运行,要使用的数据结构为:
我找到了以下答案:
一个队列,因为我们可以通过使用广度优先搜索(BFS)算法找到未加权图中的单源最短路径,该算法使用“队列”数据结构,其时间为O(m + n)(即相对于顶点和边的数量。)
需要min heap来在线性时间内实现它,因为如果我们在这里删除min heap中的一个节点,它将不会花费任何时间进行调整,因为所有r具有相同的权重,因此删除将采用O(1)一个节点..所以对于n-1节点,它将是O(n)。
有人可以解释哪一个是正确答案吗?
答案 0 :(得分:4)
请注意,如果图表未加权,则不需要dijekstra,简单的BFS将完美地用于O(E + V)==>线性时间 算法的简单实现需要一个队列数据结构。