堆优化版Dijkstra
题目描述
给定一个n个点m条边的有向图,图中可能存在重边和自环,所有边权均为非负值。
请你求出1号点到n号点的最短距离,如果无法从1号点走到n号点,则输出-1。
算法思想
基于朴素Dijkstra算法 ,使用小顶堆来获得到起点距离最小且不在集合st内的点。之后松弛所有相邻的点。
时间复杂度
时间复杂度 O(m∗log(n))O(m*log(n))O(m∗log(n)), n 表示点数,m 表示边数。使用堆来找点,时间复杂度为log(n)log(n)log(n).j将每一个边访问一遍,时间复杂度为mmm。所以
原创
2020-07-20 16:04:05 ·
299 阅读 ·
1 评论