Kruskal's Runtime

How to get the next min-weight edge?

Keep edged in a (min-heap) priority queue.

How to check if adding edge (v-w) creates a cycle?

Use Union-Find to help in checking/preventing cycle

Exercise Complete the following table:

OperationFrequencyCost per operation
build PQ
extract min
union
connected
Solution
OperationFrequencyCost per operation
build PQ$1$$O(M)$
extract min$O(M)$$O(\lg M)$
union$O(N)$$O(\lg^* N)$
connected$O(M)$$O(\lg^* N)$