Greedy Algorithm (Kruskal, Prim, Dajikstra) 비교 (4줄정리)
in Programming on Algorithm
Greedy Algorithm (Kruskal, Prim, Dajikstra)이 무엇인지 알아보고 차이가 무엇인지 비교해보자
Kruskal Algorithm
- edge를 오름차순 정렬한다
- edge 값이 작은 아이들부터 연결한다
- cycle이 생긴다면 연결하지않는다
- 반복하여 최종적으로 MST가 완성된다
Prim Algorithm
- 시작점 node를 정한다.
- 시작점 node에서 가장 edge가 적은 node를 방문한다.
- 방문한 node에서 또 가장 작은 edge를 찾아 인접 node를 방문한다.
- 이런식으로 모든 node를 방문하면 MST가 완성된다.
Dijkstra Algorithm
- 시작점 node를 정한다
- 시작점 node와 인접한 node를 방문하며 다른 node들과 시작점node 간의 최소 distance를 구한다.
- 인접한 node들을 계속 방문하며 최소 distance를 갱신한다.
- 모든 node를 방문하고 마지막으로 갱신된 상태가 MST 이다.