1

私が理解していることから、強く接続されたコンポーネントに対して既製の効率的なブラックボックスメソッドがある場合、トポロジカルソートを行う1つの方法は次のとおりです。

(仮定 - 自己ループなし)

  1. 強連結成分を実行する
  2. サイズ > 1 のコンポーネントが 1 つ以上ある場合、このグラフにはサイクルがあります。
  3. それ以外の場合 (グラフには 1 つのサイズのコンポーネントしかありません)、これは DAG です。おめでとうございます!
  4. それが DAG 実行のトポロジカル ソートである場合は、それができないと文句を言います。

効率に関係なく、上記はトポロジカルソートを行う「技術的に正しい」方法ですか?

物事を正しく理解していることを確認したいだけです。

4

2 に答える 2

3

はい、技術的には正しいです。自己ループのない有向グラフは、すべての強いコンポーネントのサイズが 1 の場合、非循環 (つまり、トポロジカルに並べ替え可能) であるためです。ただし、最も一般的なトポロジカル並べ替えは、簡単な副産物としてサイクル検出を行います。

于 2015-06-01T19:30:57.827 に答える