There are two different sources for specifying an input graph: Draw Graph: You can draw any connected undirected weighted graph as the input graph. Example Graphs: You can select from the list of example connected undirected weighted graphs to get you started. Discussion: Is this the only possible sort criteria? Drop an email to visualgo. Go through this animated example first before continuing.

Author:Yorg Vilar
Language:English (Spanish)
Published (Last):7 August 2013
PDF File Size:3.84 Mb
ePub File Size:3.93 Mb
Price:Free* [*Free Regsitration Required]

Given a connected and undirected graph, a spanning tree of that graph is a subgraph that is a tree and connects all the vertices together. A single graph can have many different spanning trees. A minimum spanning tree MST or minimum weight spanning tree for a weighted, connected and undirected graph is a spanning tree with weight less than or equal to the weight of every other spanning tree.

The weight of a spanning tree is the sum of weights given to each edge of the spanning tree. How many edges does a minimum spanning tree has? A minimum spanning tree has V — 1 edges where V is the number of vertices in the given graph. What are the applications of Minimum Spanning Tree? See this for applications of MST. Sort all the edges in non-decreasing order of their weight.

Pick the smallest edge. Check if it forms a cycle with the spanning tree formed so far. If cycle is not formed, include this edge.

Else, discard it. Repeat step 2 until there are V-1 edges in the spanning tree. The step 2 uses Union-Find algorithm to detect cycle. So we recommend to read following post as a prerequisite. The Greedy Choice is to pick the smallest weight edge that does not cause a cycle in the MST constructed so far.

Let us understand it with an example: Consider the below input graph. The graph contains 9 vertices and 14 edges. Pick edge No cycle is formed, include it. Pick edge Since including this edge results in cycle, discard it. Since the number of edges included equals V — 1 , the algorithm stops here.


Algorithme de Kruskal

We can achieve this bound as follows: first sort the edges by weight using a comparison sort in O E log E time; this allows the step "remove an edge with minimum weight from S" to operate in constant time. Next, we use a disjoint-set data structure to keep track of which vertices are in which components. Even a simple disjoint-set data structure such as disjoint-set forests with union by rank can perform O V operations in O V log V time. CE is now the shortest edge that does not form a cycle, with length 5, so it is highlighted as the second edge. The next edge, DF with length 6, is highlighted using much the same method.


Algorithme de Kruskal


Related Articles