cuốn sách gpt4 ai đã làm

BFS và DFS trong những trường hợp này?

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 04:05:25 26 4
mua khóa gpt4 Nike

Tôi không thể quyết định nên sử dụng bfs hay dfs trong cả hai trường hợp

Trường hợp 1: Đồ thị là một cây có trọng số cạnh không cân bằng, không có hướng, có chiều cao 40 và độ sâu tối thiểu tới bất kỳ nút lá nào là 38. Thuật toán tốt nhất để tìm chi phí cạnh tối thiểu từ gốc đến bất kỳ lá nào

Trường hợp 2: Đồ thị là vùng heap tối đa, thuật toán nào là tốt nhất để tìm giá trị khóa tối đa ở mỗi cấp độ của vùng heap.

Đối với trường hợp 1, tôi đang xem xét DFS, vì bạn không cần phải lặp qua tất cả các nhánh để tìm nhánh nhỏ nhất có nhánh thứ hai lớn hơn nhánh bạn đã dừng lại.

Đối với trường hợp 2, tôi đang xem xét BFS vì BFS lấy tất cả các nút từ mỗi cấp cùng một lúc và tốt hơn để so sánh..

Có gợi ý gì không?

câu trả lời hay nhất

Tôi giả sử trong cả hai trường hợp, bạn chỉ có một con trỏ tới gốc của cây/đống.

Bất kể sử dụng BFS hay DFS, độ phức tạp về thời gian trong trường hợp xấu nhất trong cả hai trường hợp là TRÊN),TRONG n là số lượng nút. Vì vậy, bất kỳ ý tưởng nào bạn có thể nghĩ ratối ưu hóaTất cả sẽ là tối ưu hóa "trung bình".

Vì những lý do chính xác mà bạn đưa ra, bạn đúng rằng DFS có thể sẽ hoạt động tốt hơn BFS cho trường hợp 1.

Tuy nhiên, đối với trường hợp 2, DFS không chậm hơn BFS (ít nhất là về mặt lý thuyết) vì bạn có thể chỉ cần lưu trữ từng nút ở cấp độ tương ứng của nó và sau đó họ so sánh tất cả các nút ở mỗi cấp độ. Tuy nhiên, đối với độ phức tạp về không gian, BFS sẽ tốt hơn vì khi bạn hoàn thành một cấp độ và chuyển sang cấp độ tiếp theo, bạn không phải lưu trữ bất kỳ nút gốc nào. Vì lý do này, BFS có thể được khuyến nghị cho trường hợp 2.

Về thuật toán - BFS và DFS trong những trường hợp này? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/42980871/

26 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress