프림 알고리즘

기록하는 용도·2022년 6월 9일
0

Prim 알고리즘

Prim MST 알고리즘

시작 정점에서 출발하여 신장 트리 집합을 단계적으로 확장해나가는방법

  • 정점 선택을 기반으로 하는 알고리즘
  • 이전 단계에서 만들어진 신장 트리를 확장하는 방법

Prim 알고리즘 과정

  1. 시작 단계에서는 시작 정점만이 MST(최소 비용 신장 트리) 집합에 포함된다.
  2. 앞 단계에서 만들어진 MST 집합에 인접한 정점들 중에서 최소 간선으로 연결된 정점을 선택하여 트리를 확장한다.
    즉, 가장 낮은 가중치를 먼저 선택한다.
  3. 위의 과정을 트리가 (N-1)개의 간선을 가질 때까지 반복한다.

Prim 알고리즘 시간 복잡도

  • 주 반복문이 정점의 수 n만큼 반복하고, 내부 반복문이 n번 반복
    Prim의 알고리즘의 시간 복잡도는 O(n^2) 이 된다.
  • Kruskal 알고리즘의 시간 복잡도는 O(elog₂e) 이므로
    그래프 내에 적은 숫자의 간선만을 가지는 ‘희소 그래프(Sparse Graph)’의 경우 Kruskal 알고리즘이 적합하고
    그래프에 간선이 많이 존재하는 ‘밀집 그래프(Dense Graph)’ 의 경우는 Prim 알고리즘이 적합하다.

0개의 댓글