Hard deck/Module

Floyd - Warshall

서버관리자 페페 2022. 8. 17. 16:54

모든 노드 간 최단 경로 탐색

- 음수 w 있어도 수행가능

- Dynamic programming 이용

 

단 하나의 맥락

- A~B 사이의 최단 경로 위에 K노드가 존재한다면, K로 들어가고 나오는 경로 역시 최단 경로

- D[S][E] = Math.min(D[S][E], D[S][K] + D[K][E])

 

1

D[S][E](Adjacency matrix) 선언 후

> S == E일 때 0

> 나머지 = INF 

 

2

D[S][E] = W 저장

 

3

3중 for문의 형태로 반복 > 업데이트

for (k : 1~N) {

    for (S : 1~N) {

        for (E : 1~N) {

        D[S][E] = Math.min(D[S][E], D[S][K] + D[K][E]);

        }

    }

}

 

'Hard deck > Module' 카테고리의 다른 글

세그먼트 트리  (0) 2022.08.28
Minimum Spanning Tree  (0) 2022.08.18
Bellman-ford-moore  (0) 2022.08.17
Dijkstra  (0) 2022.08.15
topology sort  (0) 2022.08.15