Showing
1 changed file
with
34 additions
and
0 deletions
| 1 | +import numpy | ||
| 2 | + | ||
| 3 | +parent = dict() | ||
| 4 | +rank = dict() | ||
| 5 | + | ||
| 6 | +def make_singleton_set(v) : | ||
| 7 | + parent[v] = v | ||
| 8 | + rank[v] = v | ||
| 9 | + | ||
| 10 | +def find(v) : | ||
| 11 | + if(parent[v] != v) : | ||
| 12 | + parent[v] = find(parent[v]) | ||
| 13 | + return parent[v] | ||
| 14 | + | ||
| 15 | +def union(r1, r2) : | ||
| 16 | + if(r1 != r2) : | ||
| 17 | + if(rank[r1] > rank[r2]) : | ||
| 18 | + parent[r2] = r1 | ||
| 19 | + rank[r1] += rank[r2] | ||
| 20 | + else : | ||
| 21 | + parent[r1] = r2 | ||
| 22 | + if(rank[r1] == rank[r2]) : | ||
| 23 | + rank[r2] += rank[r1] | ||
| 24 | + | ||
| 25 | +def Kruskal(graph) : | ||
| 26 | + #n = 정점의 수 / m = 엣지의 수 | ||
| 27 | + n = len(graph['vertices']) | ||
| 28 | + m = len(graph['edges']) | ||
| 29 | + | ||
| 30 | + #엣지를 전부 찾은 후 비내림차순으로 정렬한다. | ||
| 31 | + edge_list = list(graph['edges']) | ||
| 32 | + edge_list.sort() | ||
| 33 | + | ||
| 34 | + F = [] | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
-
Please register or login to post a comment