그래프에서 두 노드 간의 최단경로를 찾는 문제를 해결하는 알고리즘.
다양한 응용 분야에서 중요한 역할을 하며, 가장 많이 사용되는 알고리즘으로는 다익스트라 알고리즘, 벨만 - 포드 알고리즘, 플로이드 - 위셜 알고리즘 등이 있음
비음수 가중치 그래프에서 단일 출발점에서 다른 모든 정점까지의 최단 경로를 찾는 알고리즘
우선순위 큐를 사용하면 O((V + E) log V). 여기서 V는 정점의 수, E는 간선의 수
-음수 가중치가 있는 그래프에서도 사용 가능하며, 단일 출발점에서 다른 모든 정점까지의 최단 경로를 찾음
-음수 사이클을 감지할 수 있음
O(VE)
-모든 정점 쌍 간의 최단 경로를 찾는 알고리즘
-음수 가중치를 허용하지만, 음수 사이클이 존재하면 사용할 수 없음
O(V^3)
다익스트라 알고리즘
-사용 : 비음수 가중치 단일 출발 최단 경로
-시간복잡도 : O((V + E) log V) (우선순위 큐 사용)
-장점 : 빠르고 효율적
-단점 : 음수 가중치 간선 허용 안 함
벨만 -포드 알고리즘
-사용 : 음수 가중치 허용 단일 출발 최단 경로
-시간 복잡도 : O(VE
-장점 : 음수 사이클 감지 가능
-단점 : 다익스트라보다 느림
플로이드 - 워셜 알고리즘
-사용 : 모든 정점 쌍 간 최단 경로
-시간 복잡도 : O(V^3)
-장점 : 단순하고 구현 쉬움
-단점 : 대규모 그래프에서는 비효율적