그래프 내의 모든 정점을 포함하는 최소 연결 그래프로 부분 그래프
크루스칼 알고리즘
간선 정렬: O(E log E)
사이클 검사 (Union-Find): 거의 O(1) (경로 압축 최적화 시)
전체 시간 복잡도:
✅ O(E log E) (E: 간선 수)
프림(prim) 알고리즘
prim 알고리즘은 무방향 가중치 그래프에서 최소 신장 트리(MST)를 구하는 탐욕(Greedy) 알고리즘 이다.
| 항목 | Kruskal 알고리즘 | Prim 알고리즘 |
|---|---|---|
| 접근 방식 | 간선 중심 (Edge-based) | 정점 중심 (Vertex-based) |
| 동작 원리 | 가중치 작은 간선부터 선택하며 사이클 방지 | 하나의 정점에서 출발해 가장 가벼운 인접 간선 선택 |
| 구현 방식 | 정렬 + 유니온-파인드(Disjoint Set) | 우선순위 큐(Priority Queue / Min Heap) |
| 그래프 형식 적합 | 간선 리스트 형태에 적합 | 인접 리스트/행렬 형태에 적합 |
| 시간 복잡도 | O(E log E) (간선 정렬 + union-find) |
O(E log V) (heap + visited 관리) |
| 특이점 | 처음부터 전체 간선 보기 때문에 더 분산된 연결에 유리 | 시작 정점에서부터 하나의 트리처럼 자라남 |