Greedy Algorithms | Set 1 (Activity Selection Problem)

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

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324803204&siteId=291194637