최단 경로
[알고리즘 소개]
가중치가 존재하는 그래프에서 출발지가 정해졌을 때 해당 출발지에서 다른 정점으로 이동하는 최단 경로를 구하는 알고리즘.
[알고리즘 특징]
- 음수 가중치 가능
- 모든 간선에 대해 조사
- 음수 사이클 판정 가능
[코딩 방법]
- 간선에 대한 정보를 저장할 클래스(구조체) 생성, 배열에 저장
- dp용 배열 생성, INF로 배열을 채우고 시작점에 대해서만 0으로 초기화
- V - 1회동안 모든 간선을 확인하면서 최단경로 갱신
- 이후 V회동안 모든 간선에 대해 더 확인하면서 음수 사이클이 발생했는지 확인
- 음수 사이클의 존재만 알고 싶다면 1회만 모든 간선에 대해 확인해도 무방
[시간 복잡도]
$O(VE)$
[공부용 링크]
'정리 > 알고리즘' 카테고리의 다른 글
[알고리즘] 파스칼의 삼각형 (Pascal's Triangle) (0) | 2021.03.26 |
---|---|
[알고리즘] 분할 정복을 이용한 거듭제곱 (0) | 2021.03.25 |
[알고리즘] 유클리드 호제법 (Euclidean Algorithm) (0) | 2021.03.25 |
[알고리즘] 플로이드-와샬 (Floyd-Warshall) (0) | 2021.03.25 |
[알고리즘] 다익스트라 (Dijkstra) (0) | 2021.03.18 |