본문 바로가기
IT/Knowledge

프림(Prim) 알고리즘

by 성준하이 2024. 10. 1.
반응형

이전 포스팅에서 몇가지 알고리즘에 대해서 다룬 글이 있다.

자세한 내용은 아래 참고 포스팅 참고 바란다.

 

이번 포스팅은 프림 알고리즘 이라는것을 설명해볼 것이다.

 

우선 위키에서는 아래와 같이 소개한다.

 

 

https://ko.wikipedia.org/wiki/%ED%94%84%EB%A6%BC_%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98

 

프림 알고리즘 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 프림 알고리즘(Prim's algorithm)은 가중치가 있는 연결된 무향 그래프의 모든 꼭짓점을 포함하면서 각 변의 비용의 합이 최소가 되는 부분 그래프인 트리, 즉 최소

ko.wikipedia.org

 

좀더 쉽게 설명을 하면,

시작 정점에서 연결된 가장 작은 가중치의 간선을 확장해가면서 최소 신장트리를 만드는 알고리즘이다.

결론은 '최소 신장트리 알고리즘' 을 만들게 되고, 배열로 구현할 경우 시간복잡도는 o(n^2) / 힙으로 구현할 경우 시간복잡도는 O(E Log n) 이다.

Greedy 알고리즘의 일부이다.

 

과정
  1. 어떤 점에서 시작하던 상관없다.
  2. 그래프에서 임의의 하나의 정점을 선택한다.
  3. 선택한 정점과 인접하는 정점들중 최소 비용의 간선이 존재하게되는 정점을 선택한다.
  4. 2,3 과정을 반복 하여 모든 정점이 선택될까지 한다.

간단한 순서 예제 그림은 아래와 같다.


참고 포스팅

https://thenicesj.tistory.com/287

 

알고리즘 BFS 와 DFS

알고리즘 공부 해봤다면 그래프에서 모든 노드를 탐색하기 위한 기법으로 BFS와 DFS 를 들어봤을 것이다. 둘의 공통 목적으로는 다음과 같다.그래프의 탐색의 목적은 하나의 정점에서 시작하여

thenicesj.tistory.com

https://thenicesj.tistory.com/1070

 

다익스트라 알고리즘(Dijkstra)

다익스트라 알고리즘이란.그래프의 한 정점(頂點, Vertex)에서 모든 정점까지의 최단거리를 각각 구하는 알고리즘(최단 경로 문제, Shortest Path Problem)이다.https://namu.wiki/w/%EB%8B%A4%EC%9D%B5%EC

thenicesj.tistory.com

https://thenicesj.tistory.com/284

 

시간복잡도 계산

시간복잡도 기본적인 연산을 수행하는데에 어떤 고정된 시간이 걸릴 때, 알고리즘에 의해서 수행되는 기본 연산의 개수를 세어 예측할 수 있다. 그러므로 걸리는 시간의 총량과 알고리즘에 의

thenicesj.tistory.com

 

반응형

'IT > Knowledge' 카테고리의 다른 글

웹 GL(WebGL)  (21) 2024.10.03
webOS 란?  (10) 2024.10.02
다익스트라 알고리즘(Dijkstra)  (18) 2024.09.29
Java 23 발표  (14) 2024.09.27
인공지능의 4단계  (20) 2024.09.25

댓글