A spanning tree is a subgraph of a connected graph that connects all vertices together using the fewest possible number of edges without cycles. There are two common algorithms for finding a minimum spanning tree: Kruskal's algorithm and Prim's algorithm. Both algorithms find a subset of edges that forms a tree connecting all vertices with minimum total edge weight. Kruskal's algorithm considers all edges from lowest to highest weight, while Prim's algorithm starts from a single vertex and incrementally adds adjacent vertices.