In this problem, we will develop a new algorithm for finding minimum spanning trees. It is based upon the following property:
Pick any cycle in the graph, and let e be the heaviest edge in that cycle. Then there is a minimum spanning tree that does not contain e.
(a) Prove this property carefully.
(b) Here is the new MST algorithm. The input is some undirected graph G = (V, E) (in adjacency list format) with edge weights {we}.
sort the edges according to their weightsfor each edge e ∈ E, in decreasing order of we:if e is part of a cycle of G :G = G −e (that is, remove e from G) return G
Prove that this algorithm is correct.
(c) On each iteration, the algorithm must check whether there is a cycle containing a specific edge e. Give a linear-time algorithm for this task, and justify its correctness.
(d) What is the overall time taken by this algorithm, in terms of |E|?
We need at least 10 more requests to produce the solution.
0 / 10 have requested this problem solution
The more requests, the faster the answer.