DFS, BFS

  • 인접 행렬 구현 시, O(V^2)
  • 인접 리스트 구현 시, O(V + E)

1) DFS (Depth First Search, 깊이 우선 탐색)

  • 재귀함수 or 스택으로 구현
  • 가능한 최대 깊이까지 탐색하는 방식

① 장점

  • 에 탐색할 노드들을 저장하는 BFS에 비해, 메모리 소비가 적음

② 단점

  • 최적 해의 탐색을 보장하지 못함
  • Worst Case의 경우, 가능한 모든 경로를 탐색함

2) BFS (Breadth First Search, 너비 우선 탐색)

  • 로 구현
  • 현재 노드와 가까운 노드부터 탐색하는 방식
  • 주로, 최단 경로 (최적 해)를 탐색하는 경우 사용

① 장점

  • 최적 해의 탐색이 보장됨

② 단점

  • 노드의 수가 많을 수록 탐색 해야하는 노드가 많아짐
  • 에 탐색할 노드들을 저장하므로, 노드의 수가 많을 수록 메모리 소비가 큼

Question) "DFS와 BFS에 대해 설명 해주세요."

DFSBFS는 그래프 탐색 알고리즘 입니다.

  • DFS재귀함수 또는 스택으로 구현하며, 가능한 최대 깊이까지 탐색하는 방식 입니다.
    장점은 에 탐색할 노드들을 저장하는 BFS에 비해, 메모리 소비가 작습니다.
    단점은 최적 해의 탐색을 보장하지 못하고,
    Worst Case의 경우, 가능한 모든 경로를 탐색 합니다.

  • BFS로 구현하며, 현재 노드와 가까운 노드부터 탐색하는 방식 입니다.
    장점은 최적 해의 탐색이 보장 됩니다.
    단점은 노드의 수가 많을 수록 탐색 해야하는 노드가 많아집니다.
    또한 에 탐색할 노드들을 저장하므로, 노드의 수가 많을 수록 메모리 소비가 큽니다.




profile
Silver Star

0개의 댓글