BFS (너비 우선 탐색)

2025. 5. 7. 11:06·📚 STUDY/📈 알고리즘

그래프 시작 정점으로부터 가까운 정점부터 순차적으로 방문해나가는 탐색 알고리즘이다.

인접한 정점들을 먼저 방문하고, 그 다음 그들의 인접 정점을 방문하는 방식으로 진행된다.

즉, 최단 경로를 찾을 때 많이 사용한다.

 

💡 BFS의 정당성

✅ 시작정점에서 도달 가능한 모든 정점을 정확히 한 번씩 방문한다.

1. Queue에서 정점 u를 꺼낸다.

2. u에 인접한 모든 정점 v를 확인한다.

3. 방문❌ 정점 v는 방문 표시를 하고, 큐에 삽입한다.

즉, 한 번 방문한 정점은 다시 큐에 삽입❌ → 정점은 정확히 한 번 방문한다.

 

💡 BFS의 최단 경로성

✅ BFS는 시작 정점에서 다른 모든 정점까지의 최단 경로를 찾는다.

- 시작 정점 s에서 각 정점까지의 거리 : d(v) (= 간선의 수)

- BFS는 항상 거리가 적은 정점부터 큐에 들어가게 되어 있다.

1. d(s) = 0 (시작 정점의 거리 = 0)

2. s에 인접한 모든 정점의 거리는 1

3. 거리 1인 정점들이 모두 처리⭕ → 거리 2인 정점들 방문

 

즉, ⭐거리가 k인 정점들이 처리되어야 k+1 정점들이 처리된다.따라서, BFS는 거리가 짧은 정점부터 탐색을 확장하기에 시작 정점 s에서 어떤 정점 v까지 도달할 때, 항상 최소 간선 수로 도달하게 된다.

 

🌐 시간복잡도 : O(|V|+|E|)

* V : 정점 수

* E : 간선 수

 

저작자표시 (새창열림)

'📚 STUDY > 📈 알고리즘' 카테고리의 다른 글

DFS (깊이 우선 탐색)  (0) 2025.05.07
Quick sort  (0) 2025.05.07
Merge sort  (0) 2025.05.07
Divide-and-Conquer Algorithm  (0) 2025.04.15
Algorithm & Time Complexity  (0) 2025.04.15
'📚 STUDY/📈 알고리즘' 카테고리의 다른 글
  • DFS (깊이 우선 탐색)
  • Quick sort
  • Merge sort
  • Divide-and-Conquer Algorithm
엄지잉
엄지잉
공부하는거 올림
  • 엄지잉
    엄지잉의 이것저것
    엄지잉
  • 전체
    오늘
    어제
    • 분류 전체보기 (94)
      • 🏫 학교 (2)
        • 👩‍🏫 교직 (1)
        • 🏢 USG (1)
      • 🌱 탐구 (17)
        • 📷 SLAM (7)
        • 💡 연구 (8)
        • 🌐 BOJ (2)
      • 📚 STUDY (47)
        • 🔥 C (32)
        • 📈 알고리즘 (9)
        • 👀 컴퓨터비전 (5)
        • 🔆 UNITY (1)
      • 🏆 자격증 (23)
        • ⚡ 정처기 (17)
        • 🔠 TOEIC (6)
      • 🎈 활동 (4)
        • 🎁 CJ 리모트 인턴십 (2)
        • 😶 기타 (2)
  • 블로그 메뉴

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

    • Github
  • 공지사항

  • 인기 글

  • 태그

    Azure Kinect
    opencv
    정보처리기사
    프언 활용
    Slam
    정보시스템 구축관리
    BOJ
    Body Tracking
    mocopi
    알고리즘
    c기초
    식별자
    2022년
    C++
    정처기
    C
    실기
    Remote Internship
    azurekinect
    모션캡처
    Unity
    SW 개발
    DB 구축
    C언어
    RC
    2021년
    토익
    SW 설계
    필기
    컴퓨터비전
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
엄지잉
BFS (너비 우선 탐색)
상단으로

티스토리툴바