다익스트라 알고리즘

다익스트라(Dijkstra) ?


💡 다익스트라 핵심 개념 - Greedy

<aside> 💡

방문 여부도 체크해야 하나 ?

if (newDist < distances[neighbor]) {
		distances[neighbor] = newDist;
		pq.add(new Edge(neighbor, newDist));
}

</aside>


💡 다익스트라 핵심 개념 - 최단 거리 테이블

최단 거리 테이블의 구성과 갱신 과정

  1. 초기화

    1. 시작 정점에서의 거리는 0으로 설정한다.
    2. 나머지 모든 정점은 아직 방문되지 않았으므로 거리를 무한대(∞; INF)로 설정한다.
  2. 탐색 과정

    1. 현재 테이블에 있는 최단 거리가 가장 작은 정점을 선택하여 해당 정점을 방문 처리한다.
    2. 선택된 정점을 기준으로 인접한 정점들을 확인하며, 최단 거리 테이블을 갱신한다.
    3. 이 과정을 모든 정점을 방문할 때까지 반복한다.
  3. 결과

    1. 시작 정점에서 모든 정점까지의 최단 거리를 나타내게 된다.