アークの定義によるトポロジカルソート(私の質問から) - 方向性グラフのすべてのアークを順序付けする方法です。頂点に挿入するすべてのアークは、来る前にアークする必要がありますこの頂点から外に出る。アークによるトポロジカルな並べ替え
1
A
答えて
3
トポロジカルソートでは何も変更する必要はありません。使用するだけで後処理できます。
高レベル疑似コード:
- ラントポロジカルソート、結果の配列は
arr
- が
arr
の各頂点v
ためl
- ことせ、空のエッジリストを作成することせ[反復を注文] :
3.1。それぞれ(v,u)
をE
に:
3.1.1。リターン(v,u) to l
l
を追加し、この方法の利点は、あなたがそれ、ちょうどポストプロセスは、望ましい結果を得るために修正することなく、トポロジカルソートなどのブラックボックスを使用することができます。
正し [証明のスケッチ]:
以来(v,u)
各エッジについて - u
は、トポロジカルソートでv
した後、あなたはそれを印刷するとき、それはv
を介して行われ、そしてあなたが任意の頂点を印刷する前に、これ(v,u)
が印刷されて表示されますu
に添付されています。
複雑: O(|V|+|E|)
トポロジカルソート、後処理のためにO(|V|+|E|)
[すべての頂点および全ての辺を反復]。
0
関連する問題
- 1. 並べ替え(トポロジカル)依存関係
- 2. アルゴリズムにおけるトポロジカルな並べ替えの正しい使用
- 3. トポロジカルな並べ替えではあるが、ある種のグループ化がある
- 4. C++の選択並べ替えなし並べ替え並べ替えなし
- 5. VBA - ドラッグ&ドロップによる並べ替えの並べ替え
- 6. .Net DataTable量による並べ替え/並べ替え
- 7. Laravel 4.2並べ替えの関係による並べ替え
- 8. UITableView並べ替えのような並べ替え
- 9. 選択並べ替え並べ替え
- 10. 並べ替えで並べ替え
- 11. MarkLogic node.js api - グループを並べ替え、並べ替えで並べ替え
- 12. ランダムな順序で並べ替えを並べ替え
- 13. Django Admin - カスタムメソッドによる並べ替え
- 14. PlaycountによるMPMediaQueryの並べ替え
- 15. アルゴリズムによる並べ替え
- 16. アクセス名前による並べ替え
- 17. ルートカテゴリ別にカテゴリの並べ替えを並べ替え
- 18. 並べ替え優先度に基づいて並べ替え
- 19. 非表示/並べ替えの代わりに並べ替えるか並べ替え
- 20. Riakでデータを並べ替え/並べ替える方法は?
- 21. Collections並べ替えて両方のArrayListを並べ替える
- 22. Facebook API -/taggable_friendsエンドポイントの並べ替えを並べ替える
- 23. ファイルを並べ替えるツリーを並べ替えます
- 24. ASPxPivotGridカスタム並べ替え/並べ替えを削除する
- 25. Laravelで並べ替え結果を並べ替える方法
- 26. ツリー並べ替え中に配列が並べ替えられない
- 27. 並べ替えられていないリンクリストを並べ替える方法
- 28. 長さで並べ替える前にリストをアルファベット順に並べ替える?
- 29. 単純な並べ替えではなく、配列の並べ替え
- 30. 並べ替えコスト
ええ、ビッグオーは同じですが、仕事の量を2倍にしなければなりません。 – tchap
@OndrejKupka:確かに、定数はトポロジカルソートを変更しても高くなります。 **トポロジカルソートをカプセル化する**メリットのために。 [これは非常に重要な側面です!]実生活のアプリケーションでは、*この部分がホットスポット*であることが判明した場合は、おそらくそれを書き直したいと思うでしょう。 – amit
はい、それほど多くのコードをコピーするのは実際的ではありません。 – tchap