今天的学习聚焦在“路径检索”相关知识,尤其是最短路径的匹配方法,收获特别扎实。
先理清了路径检索的核心两种方法:深度优先搜索(DFS)像走迷宫时一条路走到黑再回溯,优先探完一条分支再换方向;广度优先搜索(BFS)则像水波扩散,逐层覆盖相邻节点,思路特别直观。
重点攻克了“找最短路径”的两种匹配方法,终于搞懂了适用场景的区别:BFS是无权图的“专属利器”,逐层匹配节点时,首次到终点的路径就是最短的,效率很高;而Dijkstra算法专门针对带非负权的图,靠“贪心匹配”每次选当前最短路径节点,慢慢更新到各节点的最短距离,解决了有权图的最短路径问题。
把抽象的算法和“走迷宫”“水波扩散”这样的场景结合起来,理解起来就顺畅多了。