THUẬT TOÁN DUYỆT CHIỀU RỘNG BFS
Bài trước mình đã đăng về thuật toán DFS thì bài này sẽ là BFS (Breadth First Search) duyệt đồ thị theo chiều rộng.
Thuật Toán Tìm Kiếm Theo Chiều Rộng BFS |
THUẬT TOÁN
MÔ TẢ THUẬT TOÁN:
- BFS: duyệt theo chiều rộng xuất phát từ đỉnh u
- Thăm các đỉnh nằm trong danh sách kề của u mà chưa được thăm (gọi là các đỉnh mức 1)
- Thăm các đỉnh nằm trong danh sách kề của các đỉnh mức 1 mà chưa được thăm (gọi là các đỉnh mức 2)
- Thăm các đỉnh nằm trong danh sách kề của các đỉnh mức 2 mà chưa được thăm (gọi là các đỉnh mức 3)
- . . .
- Sử dụng cấu trúc hàng đợi (queue)
- Thuật toán được code trên ngôn ngữ C++
VÍ DỤ:
Vẫn là ví dụ về đồ thị có hướng ở bài trước nhé =)))
Kết quả: 1 3 6 4 7 2 5
SO SÁNH DFS VÀ BFS:
Dưới đây là so sáng kết quả của 2 thuật toán trên cùng một đồ thị. Hình bên trái là duyệt theo DFS và bên phải là duyệt theo BFS.
LỜI KẾT
Trên đây mình đã chia sẻ những hiểu biết của mình về thuật toán duyệt chiều rộng BFS. Nếu có gì sai sót các bạn có thể để lại comment ở bên dưới để mình chỉnh sửa. Cảm ơn các bạn đã đọc bài viết !
Post a Comment
Post a Comment