Kruskal's algorithm finds a minimum spanning tree by growing it from a forest of trees. It works by repeatedly selecting the lowest cost edge that connects two different trees without forming a cycle and adding it to the spanning tree. This continues until only one tree remains, which is the minimum spanning tree. The algorithm considers edges in order of increasing weight, merging components with safe edges. It runs in O(ElogV) time by using a priority queue to track the lowest cost remaining edge.