Kruskals Algorithm
Optimal disjoint-set based implementation
Simple more detailed implementation
Simple disjoint-set based implementation
Simple high level implementation