Learning
토픽 87 / 92·비교표

그래프 알고리즘

DFS vs BFS

항목DFS (깊이 우선)BFS (너비 우선)
자료구조스택 (재귀)
메모리O(h) - 효율적O(w) - 많음
최단 경로미보장보장 (비가중)
사이클 감지적합적합
적용위상정렬, SCC, 경로최단 경로, 레벨 탐색

Dijkstra vs Bellman-Ford vs Floyd-Warshall

비교 항목DijkstraBellman-FordFloyd-Warshall
유형단일 출발단일 출발모든 쌍
설계 기법탐욕 (Greedy)동적 프로그래밍동적 프로그래밍
시간 복잡도O((V+E)logV) - 힙O(VE)O(V³)
공간 복잡도O(V)O(V)O(V²)
음수 가중치불가가능가능
음수 사이클 탐지불가가능 (V번째 반복)가능 (dist[i][i]<0)
핵심 자료구조우선순위 큐 (힙)간선 리스트인접 행렬
핵심 연산최소 거리 정점 추출 + Relaxation모든 간선 Relaxation V-1회경유 정점별 거리 갱신
구현 복잡도중간 (힙 관리)낮음 (3중 for)매우 낮음 (3중 for)
적합한 경우양수 가중치 단일 출발음수 가중치 존재작은 그래프 모든 쌍

Kruskal vs Prim (MST)

항목KruskalPrim
접근간선 기반 (정렬 후 선택)정점 기반 (확장)
자료구조Union-Find우선순위 큐
시간O(E log E)O((V+E) log V)
적합희소 그래프밀집 그래프
구현간선 정렬 + Union-Find인접 리스트 + 힙

위상 정렬: DFS 기반 vs Kahn 알고리즘

항목DFS 기반Kahn (진입차수)
방식후위 순서의 역순진입차수 0부터 큐 처리
사이클 감지백 엣지로 감지결과 크기 != V 시 사이클
적용재귀 자연스러운 경우반복문 선호 시