[알고리즘]-다익스트라 알고리즘(Dijkstra Algorithm)
개념
최단경로 탐색 알고리즘이다.
메커니즘
- BFS알고리즘을 이용해 방문하지 않은 노드 중 가중치가 적은 노드 선택
- 초기 노드와 다른 노드 사이의 가중치를 구한다
- BFS중 더 작은 가중치가 나오면 최단경로로 설정한다.
- BFS가 끝나면 각 노드의 최단경로가 나온다.
구현 방식
- 인접 행렬
- 우선순위 큐
시간복잡도
- 인접행렬 : O(V^2)
- 우선순위 큐 : O((V+E)logV)
요약
- 우선순위 큐 방식이 시간적으로 효율적이다.
- 코드 보면서 이해하기 (그래프나)