이전 포스팅에서 몇가지 알고리즘에 대해서 다룬 글이 있다.
자세한 내용은 아래 참고 포스팅 참고 바란다.
이번 포스팅은 프림 알고리즘 이라는것을 설명해볼 것이다.
우선 위키에서는 아래와 같이 소개한다.
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 알고리즘의 일부이다.
과정
- 어떤 점에서 시작하던 상관없다.
- 그래프에서 임의의 하나의 정점을 선택한다.
- 선택한 정점과 인접하는 정점들중 최소 비용의 간선이 존재하게되는 정점을 선택한다.
- 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 |
댓글