课件编号20177434

4.3 非数值计算(二分查找)课件(共22张PPT) -2023—2024学年高中信息技术教科版(2019)必修1

日期:2024-05-19 科目:信息技术 类型:高中课件 查看:11次 大小:2376247Byte 来源:二一课件通
预览图 1/9
必修,2019,教科,信息技术,高中,学年
  • cover
(课件网) 高中信息技术 必修1 数据与计算 4.3 非数值计算 第一课时 二分查找 学习目标 01 02 了解算法中的分治思想; 掌握运用二分查找解决实际问题; 03 在python中用二分法解决问题。 4.3 非数值计算 游戏导入 【寻找假币游戏】 ———在100个硬币中找出伪币 有100个硬币,其中有1个伪币,它除了质量比真币轻一点之外,没有别的区别,如何通过天平快速找到这个伪币。 请同学们思考并讨论“如何快速找出假币”? 游戏导入 【寻找假币游戏】 ———在100个硬币中找出伪币 以重量判断为例 重量轻的是假币 首先是将100个硬币分成两个50,使用天平进行衡量,然后确定伪币在比较轻的那50个里,接着再将50分成2个25,将25分成两个12和1个1,将12分成2个6,将6分成2个3,将3分成3个1,这样6次就可以找到伪币,比50次少很多。 游戏导入 【寻找假币游戏】 ———在100个硬币中找出伪币 以重量判断为例 重量轻的是假币 首先是将100个硬币分成两个50,使用天平进行衡量,然后确定伪币在比较轻的那50个里,接着再将50分成2个25,将25分成两个12和1个1,将12分成2个6,将6分成2个3,将3分成3个1,这样6次就可以找到伪币,比50次少很多。 算法:分治 项目内容 本节我们将围绕“生活中的算法”项目,尝试用“算法的眼睛”看待生活,用“算法的思维”去解决实际问题。 项目任务 任务一:巧翻字典 任务二:玩转“汉诺塔”游戏 本节任务 任务:巧翻字典 活动:统计查字典次数 查汉字、查单词、查成语等查字典的活动,早已成为我们学习生活的部分。假设一本字典大约1000页,目标信息在第328页。请记录你翻页过程,和同学们比比,看谁翻的次数最少。 次数 翻至页码 下一步决策 第一次 第二次 第三次 第四次 第五次 …… 有的同学翻得特别快,他们用了什么方法呢?原来看似普通的翻字典,不仅是一门技术, 更是一种能力,是算法思想的体现。 任务:巧翻字典 活动:统计查字典次数 次数 翻至页码 下一步决策 第1次 500 往前 1-499 第2次 250 往后 251-499 第3次 375 往前 251-374 第4次 312 往后 313-374 第5次 343 往前 313-342 第6次 327 往后 328-342 第7次 335 往前 328-334 第8次 331 往前 328-330 第9次 329 往前 328-328 第10次 328 策略 1 找到区间的中位数 策略 2 根据情况确定更精确的区间 知识探究:二分查找/折半查找 二分思想:将数列有序排列,采用跳跃的方式查找数据。 分治策略 将难以直接解决的大问题,分割成较小的同类问题 方法:以递增数列为例,以中点位置元素作为比较对象,若要查找元素值小于该中点元素,将待查找序列缩小为左半部分,否则为右半部分。每次比较后都能将查找区间缩小一半。 找一半 按照顺序找一半, 一比较,舍一半。 继续找一半, 一半又一半, 快速找答案! 知识探究:二分查找/折半查找 左边界 flag1 右边界 flag2 目标数x 中间数 mid !!!若中间数mid比目标数x大,则区间变为左半区间,右边界更新 左边界 flag1 右边界 flag2 目标数x 中间数 mid !!!若中间数mid比目标数x小,则区间变为右半区间,左边界更新 知识探究:二分查找/折半查找 在有n个元素的有序序列中,利用二分查找大约需要log2n次。 n = 1000 需要10次 二分思想:将数列有序排列,采用跳跃的方式查找数据。 任务:巧翻字典 程序编写———补充程序 x = int(input('请输入要查找的数据:')) step = 0 #查找次数 flag1 = 1 #目标区域左边界 flag2 = 1000 #目标区域右边界 while flag1 <= flag2 : #区间左边界不大于右边界则执行 mid = (flag1 + flag2)//2 #表示区间中间值 //为整除 step = step + 1 #查找次数加1 if mid > x: #区域中间值大于目标数 flag2 = mid - 1 #范围往 ... ...

~~ 您好,已阅读到文档的结尾了 ~~