BFS và DFS là các thuật toán duyệt đồ thị.
BFS
Thuật toán Tìm kiếm đầu tiên theo chiều rộng (BFS) duyệt qua một đồ thị theo chuyển động theo chiều rộng và sử dụng một hàng đợi để nhớ lấy đỉnh tiếp theo để bắt đầu tìm kiếm khi điểm cuối xảy ra trong bất kỳ lần lặp nào.
DFS
Thuật toán Tìm kiếm đầu tiên theo chiều sâu (DFS) duyệt qua một biểu đồ theo hướng chuyển động theo chiều sâu và sử dụng một ngăn xếp để nhớ lấy đỉnh tiếp theo để bắt đầu tìm kiếm khi điểm cuối xảy ra trong bất kỳ lần lặp nào.
Sau đây là những điểm khác biệt quan trọng giữa BFS và DFS.
Sr. Không. | Phím | BFS | DFS |
---|---|---|---|
1 | Định nghĩa | BFS, là viết tắt của Breadth First Search. | DFS, là viết tắt của Depth First Search. |
2 | Cấu trúc dữ liệu | BFS sử dụng Hàng đợi để tìm đường đi ngắn nhất. | DFS sử dụng Ngăn xếp để tìm đường đi ngắn nhất. |
3 | Nguồn | BFS tốt hơn khi mục tiêu gần Nguồn hơn. | DFS tốt hơn khi mục tiêu ở xa nguồn. |
4 | Tính phù hợp cho cây quyết định | Vì BFS coi tất cả là hàng xóm nên nó không phù hợp với cây quyết định được sử dụng trong các trò chơi giải đố. | DFS phù hợp hơn với cây quyết định. Đối với một quyết định, chúng ta cần xem xét kỹ hơn để tăng thêm quyết định. Nếu chúng tôi đi đến kết luận, chúng tôi đã thắng. |
5 | Tốc độ | BFS chậm hơn DFS. | DFS nhanh hơn BFS. |
6 | Độ phức tạp về Thời gian | Độ phức tạp về thời gian của BFS =O (V + E) trong đó V là đỉnh và E là cạnh. | Độ phức tạp thời gian của DFS cũng là O (V + E) trong đó V là đỉnh và E là cạnh. |