artificial-intelligence - 广度优先搜索
问题描述
我知道在深度优先搜索中,我们总是选择最左边的孩子,我想知道当我们使用 BFS 时,我们是否也必须从左到右或者没关系?感谢您的时间。
解决方案
两种算法之间的区别并不取决于您从哪里开始搜索。相反,这取决于您何时开始搜索。
在深度优先搜索中,您总是探索找到的第一个孩子的孩子,直到没有更多孩子(这可能意味着最左边、最右边、最中心等,具体取决于算法的应用)。在探索前一个节点的子节点之前,您不会开始搜索节点的下一个子节点。
在广度优先搜索中,您首先按照给出的顺序识别所有孩子,然后再继续探索您识别的第一个孩子。例如,如果您以从左到右的方式生孩子,那么您将“从左开始”并向右工作,然后您将向下寻找根。
这是一个很棒的网站,可让您使用 bfs 和 dfs,以便我刚才所说的对您有意义: https ://visualgo.net/en/dfsbfs
推荐阅读
- flutter - Listview 使应用程序 Flutter 崩溃
- c# - AppDomain.CurrentDomain.UnhandledException 未在异步方法中捕获异常
- reactjs - React - 如何在 Jest 中对 API 调用进行单元测试?
- oracle - 为什么我收到此错误:“状态:失败 - 测试失败:ORA-01017:用户名/密码无效;登录被拒绝”?
- python - 在用户定义的 Python 类中应该如何实现散列?
- php - 从 youtube 频道获取最新视频
- javascript - javascript中抛硬币的简单程序的一个小问题
- angular - 如何在材质工具栏上自定义背景颜色?
- ios - “insetGrouped”样式的单元格预览的圆角(iOS 13)
- java - if then else 语句的替代方案