02. BFS(Breadth-First Search)

2026. 3. 7. 19:33·CS/알고리즘

1. 특징 및 활용

  • 너비 우선 탐색: 시작 정점에서 가까운 정점부터 차례로 탐색하는 방식.
  • 최단 경로 탐색: 가중치가 없는 그래프에서 최단 경로임을 보장하는 데 유용하다.
  • 실전 사례: 'OfficeWorkerRunning' 포트폴리오에서 특정 구역의 폐쇄 여부를 판단할 때 활용.

2. 복잡도 및 장단점

항목 내용
시간 복잡도 인접 리스트: O(V+E) / 인접 행렬: O(V^2)
공간 복잡도 O(V) (큐에 노드 보관)
장점 가중치 없는 그래프에서 최단 경로 보장
단점 DFS 대비 상대적으로 많은 메모리 사용

3. 구현 코드 (C++)

큐(Queue)를 활용하여 구현하며, 큐에 넣는 시점에 방문 처리를 수행한다.

queue<int> q;
q.push(start);
visited[start] = true;

while (!q.empty()) {
    int cur = q.front(); 
    q.pop();

    for (int nxt : adj[cur]) {
        if (visited[nxt]) continue;
        q.push(nxt);
        visited[nxt] = true; // 방문 처리
    }
}

4. 번외: 방문 처리 시점

인접 노드를 탐색하여 큐에 넣는 즉시 방문 처리를 해주어야 중복된 노드가 큐에 쌓이는 것을 방지할 수 있다. 이는 공간 복잡도 관리 측면에서 매우 중요하다.

'CS > 알고리즘' 카테고리의 다른 글

03. DFS(Depth-First Search)  (0) 2026.03.10
01. 수학  (0) 2026.03.07
알고리즘 OT  (0) 2026.03.07
'CS/알고리즘' 카테고리의 다른 글
  • 03. DFS(Depth-First Search)
  • 01. 수학
  • 알고리즘 OT
coding-l7
coding-l7
  • coding-l7
    coding-l7rl0
    coding-l7
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 기타
      • 유니티
        • OfficeWorkerRunning
      • 프로그래밍 언어
        • C
        • C#
        • C++
      • CS
        • 컴퓨터 구조
        • 운영체제
        • 자료구조
        • 알고리즘
        • 네트워크
        • 컴퓨터 그래픽스
      • 물리 기반 시뮬레이션
        • 기초
        • Cloth Simulation
        • Fluid Simulation
      • 코딩 테스트
        • 프로그래머스
        • 백준
      • 독서
        • [ 뇌를 자극하는 윈도우즈 시스템 프로그래밍 ]
        • [ CUDA 기반 GPU 병렬 처리 프로그래밍 ]
      • 영어
        • Basic Grammar In Use
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
    • 포트폴리오
  • 공지사항

  • 인기 글

  • 태그

    surface turbulence
    OpenGL
    시스템 프로그래밍
    fluid implicit particle
    fluid simulation
    파동 난류
    정수 승격
    Flip
    position based dynamics
    상수
    narrow range filter screen-space fluid rendering
    실수
    cloth simulation
    명령어
    유체 시뮬레이션
    collision
    입자 기반 방법
    GLSL
    액체 시뮬레이션
    컴퓨터 구조
    물리 기반 시뮬레이션
    screen-space rendering
    screen space fluid rendering
    RAM
    그리드 기반 방법
    C언어
    jump table
    wave simulation
    pbd
    bilateral blur
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
coding-l7
02. BFS(Breadth-First Search)
글쓰기
상단으로

티스토리툴바