- 1
- 0
- 约3.12千字
- 约 6页
- 2026-03-10 发布于广西
- 举报
PAGE
PAGE1
广度优先搜索
教学目标
1.知识与技能
了解广搜基本概念
掌握广搜基本代码框架
运用广搜解决简单问题.
2.过程与方法:
学习流程:讲授——模仿——练习
通过课堂练习,巩固课堂内容。
教学重点、难点
【重点】
迷宫问题的广度优先搜索过程
广度优先搜索程序设计模板
队列的基本概念
【难点】
广度优先搜索的基本原理
队列在广度优先搜索中的基本操作
问题建模和分析
课时安排
课时安排:120分钟
四、上课准备
课程相关ppt、白板、白板笔、积分卡
课前检查电脑、投影仪、网络是否有故障,及时修复。
五、教学活动
活动时长
教学活动
注意事项
课前准备
老师准备学生电脑,保证电脑能正常使用;打开投影仪,打开上课课件,以最饱满的热情迎接学生!
提前10分钟准备
开场白
欢迎各位同学回到吉码信息学课堂。
引入
广度优先搜索是另一种搜索方式。有时候,广度优先搜索能比深度优先搜索快的多。特别是求最短路径类的问题,广度优先搜索常常能够出人意料地高效,而深度优先搜索却有可能无法在规定的时间内完成问题求解。今天我们就来学习广度优先搜索。
学习内容(1)
ppt5走迷宫2
请看ppt,我们现在要找一条最短路径。深度优先的试探方法,我们前面已经试过了,费了九牛二虎之力才找到了所有的路径,然后我们才能在这些路径中筛选出最短路径。
如果换一种试探方法,我们所有的方向都同同步往前试探,一旦试探到终点,则立即停止,当前的步数就是最短路径的步数。图上标记了1的位置,就是我们第一步能够到达的位置。
从ppt6开始,就是广度优先搜索走迷宫的过程。
ppt7:从第一步到达的位置,同时开始试探第二步能够到达的位置。
ppt8:从第二步能够到达的位置,开始试探第三步能够到达的位置。
ppt9:以此类推,现在试探第四步能够到达的位置。
ppt10:试探到终点,结束试探。此时走了五步。那么最短路径就是5步能到达终点。
ppt11:现在我们想办法用程序模拟刚才搜索的过程。首先是迷宫的存储。
【提问】迷宫怎么存储?
【回答】用二维数组。迷宫位置的行坐标和列坐标就用二位数组的下标来一一对应。二位数组的值表示该点是否通畅。
【提问】dfs算法需要标记去过的点,这里广度优先搜索也要标记,为什么?
【回答】如果我们从当前点又回到上一个点,那么就可能造成两个点之间来回走动的情况,这种情况对于走迷宫而言是无效操作,而且一旦回到走过的点,意味着浪费两步,就不能求得最短路径了。
【提问】还记得方向数组吗?怎么设定方向数组,如何模拟移动?
【回答】四个方向的改变量存在数组里,就是方向数组。
x+fx[i][0],y+fx[i][1],就能计算从第i个方向到达新的位置的x坐标和y坐标。
ppt13:搜索的模拟方式
重点:我们需要把所有的能够到达的点都存起来,下次再从新到达的点继续出发。去过的点就需要标记一下。我们每次只会从新的位置往前走一步,而不是走到底。
如何实现一步一步试探呢?这里我们需要借助一种新的数据结构——队列。
需要试探下一步的点,我们全部都要存储在队列中,试探完一个点,就把这个点清除出队列。然后,我们把新试探到达的点全部存储到队列中。这样,队列中永远存储的是等待试探的点。
那么有同学会问:这样存储了,怎么知道试探到哪一步呢?
其实很简单,我们只要把当前的点是第几步一起存起来就好了,那么从当前点出发,试探到的下一个点,步数在当前步数基础上加1就可以了。
那么我们对一个点的描述就需要三个参数:x坐标,y坐标以及当前步数cnt;
下面我们用队列模拟广度优先搜索的过程:(重点和难点)
首先,我们把等待试探的点入队。第一个要试探的点当然是起点了,这个点先存在队列中。
大家仔细观察,这里的表格中,我们设定了两个虚拟的“指针”变量,一个指向队列头部,它的值等于队列头部在数组中的位置;一个是tail,指向队列尾部,它的值等于队列尾部位置的下一个位置的下标值。入队,其实就是在tail指向的位置存入一个数据,然后tail往后移动。初始状态head=tail,这就是队列空的判断条件。
ppt14:然后,我们取出队列首位的元素(其实这时候只有起点),然后依次试探能够到达的点,把
新试探到的点全部加入队列。此时可以看到,队列越来越长了,因为一个点可以到达很多个点。
【提问】怎么把新试探到的点入队?
【回答】先计算新的坐标,在计算新的步数=当前点的步数+1;得到新坐标值和新步数值后,存储在tail指向的数组空间,标记入队的点,然后tail++即可。
教师在这里多次模拟操作入队,演示点的扩展。
所有的新点入队以后,用来产生新点的点要出队列。出队列的操作是head++;大家看,head往后移动了以后,head到tail之间就没有原先对首的元素了,这就是出队列
您可能关注的文档
- C++编程《第001课 初识C++》教学设计.docx
- C++编程《第001课 初识C++》教学课件.pptx
- C++编程《第002课 变量和数据类型(1)》教学课件.pptx
- C++编程《第002课 变量和数据类型(1)》教学设计.docx
- C++编程《第003课 变量和数据类型(2)》教学设计.docx
- C++编程《第003课 变量和数据类型(2)》教学课件.pptx
- C++编程《第004课 选择与分支(1)》教学课件.pptx
- C++编程《第004课 选择与分支(1)》教学设计.docx
- C++编程《第005课 选择与分支(2)》教学课件.pptx
- C++编程《第005课 选择与分支(2)》教学设计.docx
- 统编版2025年春季新版七年级下册历史 第21课 明清时期的科技与文化 教案.docx
- 雅安雨城法院书记员招聘考试真题库2025.docx
- 2026届安徽合肥市高考一模高考语文试卷试题(含答案详解).pdf
- 【专题研究】国内外城市更新研究的最新进展.pdf
- 【专题研究】老旧城区改造居民满意度影响因素研究——以遂宁市老旧城区改造为例.pdf
- 【专题研究】关于旧城空间改造理论与创意设计案例的几点思考.pdf
- 西藏拉萨市高三下学期期末物理备考重点详解.docx
- 泾县法院书记员招聘笔试真题2025.pdf
- 2026年春【苏教版】-六年级数学下册-面积的变化.pptx
- 2026年春【苏教版】-六年级数学下册-7.pptx
最近下载
- 《全球粮食安全挑战》课件.ppt VIP
- 医院感染管理办法课件PPT.pptx VIP
- 新公共法语中级教程(吴贤良)习题答案及参考译文.pdf
- 人工智能在司法领域的应用路径与前景分析.docx VIP
- 江西电力职业技术学院单招职业倾向性考试题库及答案详解(真题汇编).docx VIP
- 消化不良ppt课件.pptx VIP
- 2025年广东省外语艺术职业学院单招笔试英语试题库含答案解析.docx VIP
- 2026年忻州职业技术学院单招职业适应性测试题库附答案解析.docx VIP
- 控制计划CP中英文完整范本.xls VIP
- 江西电力职业技术学院单招职业适应性考试题库及答案详解(历年真题).docx VIP
原创力文档

文档评论(0)