Kruskal's Algorithm: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 13: Line 13:
=Non-Optimized Implementation=
=Non-Optimized Implementation=
==Non-Optimized Implementation Running Time==
==Non-Optimized Implementation Running Time==
<font size=-1>
sort edges in the order of increasing cost
initialize T = ∅ <font color=teal>The tree we are growing.</font>
for edge e in the order of increasing cost:
  if T ⋃ e has no cycles
    add e to T
</font>


=Correctness Proof=
=Correctness Proof=

Revision as of 17:04, 22 October 2021

External

Internal

Overview

Kruskal's algorithms is a greedy algorithm that computes the minimum cost spanning tree for an undirected connected graph. It has a different approach than Prim's algorithm, in that it does not grow the connected explored territory one node at a time, but it grows the trees in parallel with a lot of simultaneous little pieces, unconnected at first, which eventually merge into the minimum cost spanning tree. It does that by sorting the edges in the ascending order of their cost, and picking edges in that order, one by one, careful not to create cycles.

Non-Optimized Implementation

Non-Optimized Implementation Running Time

sort edges in the order of increasing cost
initialize T = ∅ The tree we are growing.
for edge e in the order of increasing cost:
  if T ⋃ e has no cycles
    add e to T

Correctness Proof

https://www.coursera.org/learn/algorithms-greedy/lecture/U3ukN/correctness-of-kruskals-algorithm

Optimized Implementation