文章链接: 拓扑排序精讲、 dijkstra(朴素版)精讲
题目链接: 117. 软件构建、 47. 参加科学大会
拓扑排序精讲
拓扑排序的定义:
给出一个有向图,把这个有向图转成线性的排序就叫拓扑排序。
(当然拓扑排序也要检测这个有向图 是否有环,即存在循环依赖的情况,因为这种情况是不能做线性排序的。
所以拓扑排序也是图论中判断有向无环图的常用方法。)
思路:
第一步:找到入度为0 的节点,加入结果集;
第二步:将该节点从图中移除。
循环以上两步,直到所有节点都在图中被移除了。
【结果集的顺序,就是我们想要的拓扑排序顺序 (结果集里顺序可能不唯一)。】
dijkstra(朴素版)精讲
dijkstra算法:在有权图(权值非负数)中求从起点到其他节点的最短路径算法。
dijkstra三部曲:
第一步,选源点到哪个节点近且该节点未被访问过;
第二步,该最近节点被标记访问过;
第三步,更新非访问节点到源点的距离(即更新minDist数组)。