프림 알고리즘이란?
가중치가 있는 연결된 그래프의 모든 꼭짓점을 포함하면서 각 변의 비용의 합이 최소가 되는 부분 그래프인 트리, 즉 최소 비용 생성나무를 찾는 알고리즘
- 그래프에 간선이 많이 존재하는 밀집 그래프인 경우 적합하다.
- 시간 복잡도 - O(ElogV), 그래프가 충분히 뺵빽한 경우 피보나치 합을 이용하여 더 빠르게 값을 구할 수 있다.
설명
- 그래프에서 하나의 노드를 선택한 후 트리를 만든다.
- 그래프의 모든 간선이 들어있는 집합을 만든다.
- 모든 노드들을 방문하기 전까지 반복
- ->트리 자체와 연결된 간선들 중에서 가중치가 가장 작은 간선을 선택 후 연결되어 있는 노드로 넘어감.
- 반복이 끝났을 때 최소비용 신창트리가 완성!
관련 문제
섬 연결하기 - https://eoghks0521.tistory.com/15?category=732073
References
https://ko.wikipedia.org/wiki/프림_알고리즘
'알고리즘 > 이론' 카테고리의 다른 글
LRU Cache Algorithm(Least Recently Used) (1) | 2019.11.03 |
---|---|
깊이 우선 탐색(depth-first search, DFS) (0) | 2019.10.10 |
너비 우선 탐색(Breadth-first search, BFS) (0) | 2019.10.06 |
퀵 정렬(Quick sort) (0) | 2019.09.30 |
댓글