KRUSKAL(G): 1 A = ∅ 2 foreach v ∈ G.V: 3 MAKE-SET(v) 4 foreach (u, v) in G.E ordered by weight(u, v), increasing: 5 if FIND-SET(u) ≠ FIND-SET(v): 6 A = A ∪ {(u, v)} 7 UNION(u, v) 8 return A
reference:https://en.wikipedia.org/wiki/Kruskal%27s_algorithm
PRIM (G): 1 Vnew = {x},x∈G.V, Enew = ∅ 2 while(Vnew != G.V): 3 foreach u in Vnew:
4 foreach v not in Vnew, but in G.V:
5 e = closeEdge (u, v) 6 choose_v = min (e) 7 Vnew = Vnew ∪ {v}, Enew = Enew ∪ {(u, v)} 8 return Enew, Vnew
reference:https://en.wikipedia.org/wiki/Prim%27s_algorithm
Dijstra (g, s): 1 foreach v in G.V: 2 d[v] = infinity 3 d[s] = 0 4 Q = G.V with d[v], S = empty set 5 while Q != empty set: 6 u = extract_min(Q) 7 S.append(u) 8 foreach edge(u,v) u in S, v in G.V,u adj v 9 if d[v] > d[u] + w(u, v) 10 d[v] = d[u] + w(u, v)reference:https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm