Wenn gegeben, dass alle Kanten in einem Diagramm sind gleich schwer Kann man die Breitensuche (BFS) verwenden, um einen minimalen Spannbaum in linearer Zeit zu erzeugen ?
Intuitiv klingt dies richtig, da BFS einen Knoten nicht zweimal besucht und nur vom Scheitelpunkt aus durchquert zum Scheitelpunkt wenn es nicht besucht hat vorher, so dass es keine Zyklen geben wird, und wenn verbunden ist, wird es schließlich alle Knoten besuchen. Da das Gewicht aller Kanten gleich ist, spielt es keine Rolle, welche Kanten das BFS ausgewählt hat.
Ist meine Argumentation sinnvoll?
quelle
Wenn alle Kantenkosten gleich sind, ist jeder Spanning Tree auch ein minimaler Spanning Tree. In diesem Fall löst jeder Algorithmus, der REACHABILITY löst, auch MST.
Sie können den Baum aus derO ( v + e ) = O (v2) wo v , e sind die Anzahl der Eckpunkte und Kanten.
Parent
Beziehung wiederherstellen . WennS.Remove
undS.Add
nehmen Sie konstante Zeit, dann dauert der Algorithmusquelle
Wenn alle Kanten gleich schwer sind, können wir verwenden:
-BFS -DFS -Dijkstra-Algorithmus -Prim-Algorithmus
Aber du kannst nicht verwenden
-kruskals Algorithmus
quelle