拓撲排序是一種圖論算法,適用於有向無環圖(Directed Acyclic Graph,簡稱DAG),用於確定圖中頂點的線性序列,以反映頂點之間的依賴關係。
在拓撲排序中,如果存在一條從頂點A到頂點B的路徑,那麼在排序結果中,B必定出現在A的後面。這種排序通常用於確定任務或事件發生的順序,例如課程安排、工程項目的施工順序或產品的生產流程。拓撲排序基於圖的邊(方向)來確定順序,確保所有依賴關係都得到滿足。在拓撲排序中,每個頂點只出現一次,且如果存在從頂點A到頂點B的路徑,那麼在排序中B出現在A的後面。