* Kruskal 알고리즘은 다음의 순서대로 실행한다.
1. 연결선들을 가중치 순서대로 정렬하여 배열 EDGELIST[1...e]에 저장한다.
2. sizeT = 0 // 트리에 있는 정점들의 수
3. eCount = 0 // 트리에 있는 연결선들의 수
4. while ( sizeT < n-1 ) {
eCount = eCount + 1;
(v,w) = EDGELIST[ecount];
if ( not together (v,w) ){
// together(v,w)함수는 v와 w가 이미 합쳐져 있으면 true이다.
"연결선 (v,w)를 트리에 추가한다."
v와 w를 합친다.
sizeT = sizeT + 1;
}
// 트리에 이미 추가된 노드들 끼리의 선이면 아무것도 실행하지 않고 다음 선으로 넘긴다.
}
- 분석
"1."번과정에서 Merge Sort를 사용 세타 eloge
"4."번과정에서 n-2번 수행 세타 n
통상적으로 eloge가 더 크므로 세타의 eloge로 한다.
--------------------------------------------------------------------------------------
Kruskal 알고리즘은 어려운 것이 없으므로 추가적 설명은 하지 않는다.
1. 연결선들을 가중치 순서대로 정렬하여 배열 EDGELIST[1...e]에 저장한다.
2. sizeT = 0 // 트리에 있는 정점들의 수
3. eCount = 0 // 트리에 있는 연결선들의 수
4. while ( sizeT < n-1 ) {
eCount = eCount + 1;
(v,w) = EDGELIST[ecount];
if ( not together (v,w) ){
// together(v,w)함수는 v와 w가 이미 합쳐져 있으면 true이다.
"연결선 (v,w)를 트리에 추가한다."
v와 w를 합친다.
sizeT = sizeT + 1;
}
// 트리에 이미 추가된 노드들 끼리의 선이면 아무것도 실행하지 않고 다음 선으로 넘긴다.
}
- 분석
"1."번과정에서 Merge Sort를 사용 세타 eloge
"4."번과정에서 n-2번 수행 세타 n
통상적으로 eloge가 더 크므로 세타의 eloge로 한다.
--------------------------------------------------------------------------------------
Kruskal 알고리즘은 어려운 것이 없으므로 추가적 설명은 하지 않는다.