Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 큐
- 1037
- 오류교정
- Floyd 알고리즘
- vue
- 토마토(고)
- 김씨만행복한세상
- JAVA #필수값
- 페이지전환
- 페이지 전환
- 코드그라운드
- 태그를 입력해 주세요.
- 1108
- hexagonal architecture #layer architecture #아키텍쳐 #헥사고날
- Queue
- Floyd
- 스택
- 2613
- 새로운방
- 정올
- kafka #consumer #autoStartup
- kafka connect #debizium #transform
- 최단거리
- kafka #ackmode #manual #acknowledge
- 암스트롱 수
- sql #오라클 #oracle #sequence #foreach #insert #mybatis
- 1045
- 알고리즘
- 새로운 방
- maven #메이븐 #빌드 #build #lifecycle
Archives
- Today
- Total
별집사의 IT세상
Floyd 알고리즘 본문
반응형
최단경로 구하는 그래프이론에 쓰이는 알고리즘이다.
포문을 삼중으로 돌려
A에서 B로 가는데 C를 거치는 경로가 더 작다면 arr[A][C] > arr[A][B] + arr[B][C], 값을 작은 값으로 갱신하는 방식이다.
모든 경우의 수를 다 돌려서 가장 작은 값들로 리셋 시키는 방식, 시간복잡도는 O(n^3)이다.
int i, j, k; for(j = 0; j < n; j++){
for(i = 0; i < n; i++){
for(k = 0; k < n; k++){
if(dist[i][k] > dist[i][j] + dist[j][k])
dist[i][k] = dist[i][j] + dist[j][k];
}
}
}
for문을 구성할 때 거치는 C를 최상위 for문으로 배치한다. 간단해 보이는 코드이면서도 간단하게 문제가 해결 가능한 훌륭한 코드이다.
항상 볼 때마다 나중에 써야지 하면서도 막상 쓰려고 하면 잘 못쓰겠는 알고리즘..
반응형
'IT > IT 정보' 카테고리의 다른 글
Vue 즉시실행함수표현 (0) | 2024.11.08 |
---|---|
메이븐(Maven)에 대해 알아보자 (7) | 2024.11.06 |
알고리즘 기법 (0) | 2017.04.15 |
큐와 스택 (0) | 2017.04.13 |
Comments