ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • bfs - 너비 우선 탐색
    알고리즘 2024. 2. 20. 17:26

    그래프 탐색이란
    하나의 정점으로부터 시작하여 차례대로 모든 정점들을 한 번씩 방문하는 것

    Ex) 특정 도시에서 다른 도시로 갈 수 있는지 없는지, 전자 회로에서 특정 단자와 단자가 서로 연결되어 있는지

     

    너비 우선 탐색이란
    루트 노드(혹은 다른 임의의 노드)에서 시작해서 인접한 노드를 먼저 탐색하는 방법

    시작 정점으로부터 가까운 정점을 먼저 방문하고 멀리 떨어져 있는 정점을 나중에 방문하는 순회 방법이다. 즉, 깊게(deep) 탐색하기 전에 넓게(wide) 탐색하는 것이다.
    사용하는 경우: 두 노드 사이의 최단 경로 혹은 임의의 경로를 찾고 싶을 때 이 방법을 선택한다.
    Ex) 지구상에 존재하는 모든 친구 관계를 그래프로 표현한 후 Ash와 Vanessa 사이에 존재하는 경로를 찾는 경우

     

     

    특징
    - 어떤 노드를 방문했었는지 여부를 반드시 검사 해야 한다는 것이다. 이를 검사하지 않을 경우 무한루프에 빠질 위험이 있다.
    - BFS는 방문한 노드들을 차례로 저장한 후 꺼낼 수 있는 자료 구조인 큐(Queue)를 사용한다.
    즉, 선입선출(FIFO) 원칙으로 탐색

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

    정렬  (1) 2024.04.04
    합병 정렬  (0) 2024.02.27
    소프티어 - 순서대로 방문하기(백트레킹)  (1) 2024.01.30
    java로 조합 구현  (1) 2024.01.20
    java로 순열 구현  (0) 2024.01.20
Designed by Tistory.