Table of Contents
최소 스팬은 최소 총 가장자리 무게와 그래프에서 모든 노드를 연결하기 위해 사용됩니다. 이 나무를 찾는 데 사용되는 두 가지 공통 알고리즘은 Kruskal의 알고리즘입니다. 둘 다 효율적이지 만 접근 및 구현과 다릅니다.
Kruskal의 알고리즘
Kruskal의 알고리즘은 무게로 그래프에서 모든 가장자리를 정렬합니다. 그런 다음 가장 작은 시작부터 시작하여 사이클이 형성되지 않도록 스팬에 가장자리를 추가합니다. 이 과정은 모든 노드가 연결될 때까지 계속됩니다.
알고리즘은 특히 sparse 그래프에 효과적입니다. 그것은 가장자리를 추가 할 것인지 효율적으로 체크 할 수 있도록 해체 된 설정 데이터 구조를 사용합니다.
Prim의 알고리즘
Prim의 알고리즘은 임의 노드에서 시작되며, 트리를 새로운 노드에 연결하는 가장 작은 가장자리를 추가하여 스팬을 재배합니다. 모든 노드가 포함되어있을 때까지 계속됩니다.
이 방법은 종종 dense 그래프를 선호합니다. 그것은 최소한의 무게를 효율적으로 사용하여 다음 가장자리를 선택하기 위해 우선 순위 큐를 사용합니다.
비교 및 구현
모든 알고리즘은 최소 스팬을 찾는다는 보장하지만, 효율성은 그래프의 구조에 달려 있습니다. Kruskal의 스톡은 정렬 가장자리에 초점을 맞추기 위해 단순하며 Prim의 우선 순위 큐를 사용하여 밀도 그래프와 더 효율적일 수 있습니다.
- Kruskal의 분류는 전 세계적으로
- Prim의 시작 노드에서 나무를 성장
- 두 가지 사용 다른 데이터 구조 효율
- 선택은 흑연 조밀도 및 크기에 달려 있습니다