<정의>
- 방향 그래프에서 한 지점에서 모든 지점까지의 최소거리를 구할 때 사용
- start 노드부터 end 노드까지의 최소거리 =
dist[end] - 시간복잡도
O(V^3)(V는 노드의 개수) - 가중치가 음이 아닐 때만 적용 가능
- 정점끼리의 거리를 내림차순의 우선순위큐로 구현 (힙구조)
<원리>
- 자기자신은 0, 직접적으로 연결되지 않은 노드는
INF로 초기화한다 - 출발 노드를 기준으로 이어진 각 노드의 최소 비용을 저장한다
- 방문하지 않은 노드 중에서 가장 비용이 적은 노드를 선택한다 (우선순위큐)
- 한 노드에서 연결된 모든 간선을 선택 시 visit 처리를 하고 3번 반복
<장점>
- 시간복잡도가
O(N*lgN)으로 상대적으로 빠르다 - 출발지가 정해져 있을때 dp를 이용해 모든 정점까지의 거리를 구할 수 있다.
