算法详解:拓扑排序 - 有向无环图的线性序列

算法详解:拓扑排序 - 有向无环图的线性序列 引言 在计算机科学和日常生活中,我们经常遇到需要按照特定顺序执行任务的情况。比如: 大学课程的先修关系(必须先学习数学基础才能学习高级算法) 软件项目的编译依赖(模块A依赖模块B,则必须先编译B) 任务调度系统中的任务依赖关系 拓扑排序(Topological Sort)就是解决这类问题的经典算法。它能够为有向无环图(DAG, Directed Acyclic Graph)中的所有顶点给出一个线性排序,使得对于图中的每一条有向边(u, v),顶点u在排序中都出现在顶点v之前。 ...

2025-01-21 · 12 min · lesshash

算法详解:Dijkstra算法 - 单源最短路径的经典解法

算法详解:Dijkstra算法 - 单源最短路径的经典解法 引言 在计算机科学和现实生活中,寻找最短路径是一个极其重要的问题。无论是GPS导航寻找最快路线,还是网络协议中数据包的路由选择,或是航空公司规划最经济的航线,都离不开最短路径算法。而在众多最短路径算法中,Dijkstra算法无疑是最经典、最重要的算法之一。 ...

2025-01-19 · 16 min · lesshash