Kruskal's algorithm is used to find the minimum spanning tree (MST) of a connected, undirected graph. It works by sorting the edges by weight and building the MST by adding edges one by one if they do not form cycles. The MST has the minimum total weight among all spanning trees of the graph. Ford-Fulkerson algorithm finds the maximum flow in a flow network and uses augmenting paths to incrementally increase the flow until no more augmenting paths exist. Dijkstra's algorithm solves the single-source shortest path problem to find the shortest paths from a source vertex to all other vertices in a weighted graph.