Dijkstra算法
Dijkstra 算法是一个基于「贪心」、「广度优先搜索」、「动态规划」求一个图中一个点到其他所有点的最短路径的算法,时间复杂度 O(n2)
基本思路:
从第一个点开始遍历,寻找与其最近的且没有确定最短路径的一个点,再分别更新与该点相连接的其它点与第一个点的最短距离,最后将其放入集合st中,表示该点的最短路径已确定,再重新寻找下一个离该点最近的点且该点没有被确定最短路径,不断循环操作,直至没有点可以遍历,即每一个点与第一个点的最短路径被确定。
本文介绍了Dijkstra算法的基本思路,它是一个用于求解图中一个点到其他所有点最短路径的算法,主要思想是贪心、广度优先搜索和动态规划。文章通过Acwing 849和850两道例题详细阐述了算法的应用,并讨论了如何处理重边和自环的问题。此外,还提及了算法的时间复杂度以及优化方法,如使用邻接表和优先队列。
Dijkstra 算法是一个基于「贪心」、「广度优先搜索」、「动态规划」求一个图中一个点到其他所有点的最短路径的算法,时间复杂度 O(n2)
从第一个点开始遍历,寻找与其最近的且没有确定最短路径的一个点,再分别更新与该点相连接的其它点与第一个点的最短距离,最后将其放入集合st中,表示该点的最短路径已确定,再重新寻找下一个离该点最近的点且该点没有被确定最短路径,不断循环操作,直至没有点可以遍历,即每一个点与第一个点的最短路径被确定。


被折叠的 条评论
为什么被折叠?