알고리즘/인강

Prim의 알고리즘

예캉 2017. 6. 3. 06:31

Prim의 알고리즘

-임의의 노드를 출발노드로 선택

-출발 노드를 포함하는 트리를 점점 키워 감

-매 단계에서 이미 트리에 포함된 노드와 포함되지 않은 노드를 연결하는 에지들 중 가장 가중치가 작은 에지를 선택


왜 MST가 찾아지는가?

-prim의 알고리즘의 임의의 한 단계를 생각해보자.

-A를 현재까지 알고리즘이 선택한 에지의 집합이라고 하고, A를 포함하는 MST가 존재한다고 가정하자.


f를 추가하고 그와 연결된 에지중에서 기존의 key 값보다 작으면 key값 갱신한다.

g의 key값은 2, 파이는 = f가 된다.


key값이 최소인 노드 찾기

-최소 우선순위 큐를 사용

-v-va에 속한 노드들을 저장

-extract-min: key값인 최소인 노드를 삭제하고 반환