网站首页 > 文章精选 正文
核心算法思想
1. 定义状态 - 问题求解树
2. 问题求解树是思维逻辑结构,非实体程序数据结构
DFS - 深度搜索算法
通常用递归的方式扩展状态
BFS - 广度搜索算法,适合求解最优化问题(比如最短路径)
定义
通常需要先定义一个状态数据结构,放入BFS广搜状态队列
BFS广搜遍历队列步骤(边吃边拉模式)
1. 取出状态
2. 扩展状态
3. 弹出状态
DFS 和BFS 算法思维逻辑上的主要区别
遍历状态树的方式不同。DFS深度搜索的遍历方式类似对状态树的前序遍历,通常使用递归实现。BFS广度搜索的遍历方式是分层遍历,通常借助队列的入队和弹出操作实现。
Tips
方向数组,通常在计算相邻坐标偏移量的时候用到的数组,数值相对固定。
4向(十字)
dir[4][2] = {0, 1, 1, 0, 0, -1, -1, 0};
8向(米字)
dir[8][2] = {0, 1, 1, 0, 0,-1,-1, 0
1,-1,-1, 1, 1, 1,-1,-1};
- 上一篇: 「西瓜哥说算法」从前序与中序遍历序列构造二叉树
- 下一篇: 二叉树的四种遍历(递归与非递归)
猜你喜欢
- 2025-01-07 遍历二叉树的递归与非递归实现
- 2025-01-07 二叉树遍历算法总结:前序中序后序遍历
- 2025-01-07 最简单的爬虫实现
- 2025-01-07 用了那么久的 Lombok,你知道它的原理么?
- 2025-01-07 第一篇 静态代码检查工具
- 2025-01-07 小学六年级学生写的“线段树”解析,厉害了
- 2025-01-07 二叉树的四种遍历(递归与非递归)
- 2025-01-07 「西瓜哥说算法」从前序与中序遍历序列构造二叉树
- 2025-01-07 二叉树有几种遍历方式?
- 2025-01-07 简单易懂,图文并茂带你玩转二叉树|经典数据结构详解
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 稳压管的稳压区是工作在什么区 (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)