Pseudo Code
Coddy의 크루스칼 알고리즘 - 그래프 알고리즘 코스 레슨 — 9개 중 4번째.
kruskal(n, edges):
parent[i] = i for all i # 각 정점은 자신만의 집합을 가짐
total = 0
repeat until all edges considered:
pick the unused edge (u, v, w) with the smallest w
ru = find(u); rv = find(v)
if ru != rv: # 사이클 없음
parent[ru] = rv # 합치기(union)
total += w
return total
find(x):
while parent[x] != x: x = parent[x]
return x- 매 라운드마다 사용되지 않은 가장 작은 간선을 선택하는 방식(최소 선택)은 별도의 정렬이 필요하지 않게 해줍니다.
- find는 루트까지 거슬러 올라가며, union은 한 루트를 다른 루트에 할당하는 단일 작업입니다.
직접 해보기
이 레슨에는 코드 챌린지가 없습니다.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
크루스칼 알고리즘 - 그래프 알고리즘의 모든 레슨
2The Algorithm
How it works?Pseudo CodeImplementation (Part 1)Implementation (Part 2)