Verschil tussen Kruskal en Prim: Kruskal tegen Prim

Anonim
< Kruskal vs Prim

In de computerwetenschap zijn de algoritmes van Prim en Kruskal een griezelig algoritme dat een minimale spanningsboom vindt voor een gekoppelde gewogen ongestuurde grafiek. Een spannende boom is een subgraf van een grafiek, zodat elk knooppunt van de grafiek is verbonden door een pad, dat is een boom. Elke spannende boom heeft een gewicht, en de minimum mogelijke gewichten / kosten van alle spannende bomen is de minimale spannende boom (MST).

Meer over Prim's Algoritme

Het algoritme werd in 1930 door de Tsjechische wiskundige Vojtěch Jarník ontwikkeld en later onafhankelijk van de computerwetenschapper Robert C. Prim. Het werd in 1959 door Edsger Dijkstra herontdekt. algoritme kan worden vermeld in drie hoofdstappen;

Gezien de gekoppelde grafiek met n knooppunten en respectievelijk gewicht van elke rand, 1. Selecteer een willekeurig knooppunt uit de grafiek en voeg het toe aan de boom T (die het eerste knooppunt zal zijn)

2. Beschouw de gewichten van elke rand die verbonden is met de knooppunten in de boom en selecteer het minimum. Voeg de rand en het knooppunt aan het andere uiteinde van de boom T toe en verwijder de rand van de grafiek. (Selecteer een optie als er twee of meer minima bestaan)

3. Herhaal stap 2, tot n-1 randen aan de boom worden toegevoegd.

Met deze methode begint de boom met een willekeurig willekeurig knooppunt en breidt met elke cyclus vanaf dat knooppunt uit. Om het algoritme goed te kunnen werken, moet de grafiek dus een aangesloten grafiek zijn. De basisvorm van het Prim's algoritme heeft een tijdskomplexiteit van O (V

2 ).

Meer over Kruskal's Algoritme

Het algoritme dat door Joseph Kruskal is ontwikkeld, verscheen in 1956 in de Amerikaanse Mathematical Society. Het algoritme van Kruskal kan ook in drie eenvoudige stappen worden uitgedrukt.

Gezien de grafiek met n knooppunten en respectievelijk gewicht van elke rand, 1. Selecteer de boog met het minste gewicht van de hele grafiek en voeg toe aan de boom en verwijder uit de grafiek.

2. Van de overige selecteert u de minst gewogen rand, op een manier die geen cyclus vormt. Voeg de rand toe aan de boom en verwijder uit de grafiek. (Selecteer een optie als er twee of meer minima bestaan)

3. Herhaal het proces in stap 2.

In deze methode begint het algoritme met de minste gewogen rand en blijft elke rand bij elke cyclus selecteren. Daarom, in het algoritme hoeft de grafiek niet te worden aangesloten. Kruskal's algoritme heeft een tijdskomplexiteit van O (logV)

Wat is het verschil tussen Kruskal's en Prim's algoritme?

• Prim's algoritme initialiseert met een knooppunt, terwijl Kruskal's algoritme met een rand begint.

• De algoritmen van Prim liggen van een knooppunt naar een andere, terwijl het algoritme van Kruskal de randen zo selecteert dat de positie van de rand niet op de laatste stap is gebaseerd.

• In het prim's algoritme moet de grafiek een aangesloten grafiek zijn, terwijl de Kruskal's ook op ontkoppelde grafieken kunnen functioneren.

• Prim's algoritme heeft een tijdskomplexiteit van O (V

2 ) en Kruskal's tijdskomplexiteit is O (logV).