IT用語集 › プログラミング › トポロジカルソート

トポロジカルソート

プログラミング Svenska → 更新: 2026-10-22

DAGのノードを、すべての辺 u→v について u が v より前に来るよう一列に並べること。要は「依存されるものが先」。

古典的なアルゴリズムは二つある。入次数0のノードを一つずつ取り除くカーンのアルゴリズムと、DFSの帰りがけ順を逆にする方法だ。どちらも計算量は O(V+E)。グラフに閉路があればトポロジカルソートは存在しない。

用途は広い。ビルドシステム(Make、Bazelでどのファイルをどの順に作るか)、パッケージマネージャ(npm、aptのインストール順)、タスクスケジューラ(Airflow、Dagster)、履修科目の前提チェック、コンパイラの命令スケジューリングなどで使われている。

← 用語集に戻る