Del Piero 2022-03-08 18:12 采纳率: 0%
浏览 30

一道面试题,想要确定两个路口之间的最短距离,用Dijkstra算法合适吗?为什么?

考研复试中的一道面试题。
想要确定两个路口之间的最短距离,用Dijkstra算法合适吗?为什么?

  • 写回答

1条回答 默认 最新

  • Code_流苏 优质创作者: C/C++技术领域 2022-03-08 18:21
    关注

    其实常见的主要就两种方法——Dijkstra算法和Floyd算法
    Dijkstra算法和Floyd算法的区别之处:
    总结来说就是
    1.Dijkstra不能处理负权图,Flyod能处理负权图;
    2.Dijkstra处理单源最短路径
    而Flyod是处理多源最短路径
    3.Dijkstra时间复杂度为O(n^2)
    Flyod时间复杂度为O(n^3) 空间复杂度为O(n ^ 2);
    所以题目中如果是单源点正权图,就可以考虑用Dijkstra
    如果是任意两个点之间的最短路径或者是负权图,就可以考虑用Floyd;

    希望对题主有所帮助,可以的话,帮忙点个采纳!

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 3月8日