资源简介 (共23张PPT)CHZX5.5 对分查找浙江省高中信息技术 选择性必修一 《数据与数据结构》昌化中学 应彤鑫考点剖析题号 2016.4 2016.11 2017.4 2017.11 2018.4 2019.4 2020.1 2020.7 2020.7 2021.1 2021.61 信息的概念 会声会影 信息安全道德 信息的概念 信息的概念 信息的概念 信息处理描述 信息与信息处理 信息与信息处理 信息和信息技术基本概念 信息和信息处理基本概念2 smtp协议 网页URL等 网页html等 浏览相关协议等 浏览相关协议等 电子邮局协议 人工智能 网页与浏览器 网页与浏览器 信息安全 网页与浏览器基本概念3 OCR操作应用 人工智能、OCR Word批注修订 人工智能 OCR操作应用 人工智能 数据库相关知识 数据表数据类型 数据表数据类型 数据表名称、字段、数据类型 Access 数据库(数表名称、数据类型、导出到Excel)4 数据表操作知识 数据表(设计视图) 内码、进制转换 数据库相关知识 数据库相关知识 数据表相关知识 计算机信息编码 进制转换 进制转换 信息编码相关知识 进制转换与ASCII码5 流程图执行结果 流程图执行结果 数据表操作的说法 流程图执行结果 字符内码 进制转换 PS基本操作 PS基本操作 Photoshop基本操作 GoldWave声音处理 Photoshop 图像处理6 会声会影 进制转换 流程图执行结果 进制转换 GoldWave 流程图执行结果 视频数字化压缩比 声音容量计算 声音容量计算 图像容量计算、压缩比 图像存储容量计算7 进制转换 GoldWav 作品规划制作脚本 GoldWav 流程图执行结果 GoldWave If语句变式 VB表达式 VB算术表达式 VB算术表达式 VB算术表达式8 PS基本操作 PS基本操作 GoldWave PS基本操作 PS基本操作 PS基本操作 流程图执行结果 流程图执行结果 流程图执行结果 流程图执行结果 流程图执行结果9 Flash基本操作 Flash_按钮 Flash_补间属性 Flash基本操作 Flash_按钮 Flash_按钮操作 冒泡排序交换次数 For循环程序执行结果(字符串) For循环程序执行结果(字符串) 枚举算法应用(选择填空) 枚举算法应用(选择填空)10 图像数字化 图像数字化 视频数字化 图像容量比 视频数字化 图像数字化 For循环程序执行结果 Do循环程序选择填空 Do循环程序选择填空 字符串相关运用 对分查找算法变式11 排序算法_For 对称字符串 For程序 对分查找 For程序结果 For程序结果 Do循环程序结果 程序功能代码排序 对分查找 对分查找 冒泡排序算法 字符串处理结果12 对分查找 对分查找 选择排序改进 对分查找 对分查找 对分查找 对分查找 冒泡排序变式 冒泡排序变式 对分查找 冒泡排序算法及其变式考点剖析对分查找通过实例分析,掌握对分查找的基本思想和程序实现。借助对分查找的基本实现,实现对分查找变式的应用。理解对分查找的应用场景,能在实际问题解决中运用对分查找。目标分解基础落实算法思想经典程序01基础落实Jichu luoshi算法思想首先将查找数与有序数组内处于中间位置的数据比较,如果中间位置上的数与查找数不同,则根据有序性,确定应该在数组的前半部分还是后半部分继续查找。在新确定的范围内,继续按上述方法,直到获得最终结果。①要求被查找数据必须有序。②查找效率非常高,适用于大数据查找。算法特点算法设计开始i=0,j=9d[m]=key d[m]查找成功查找失败结束YNYNYNm=i<=j(i+j)//2i=m+1j=m-1基础落实Jichu luoshi算法描述key=int(input())d=[10,15,17,18,22,27,35,45,48,52]f=Falsei=0j=while :m=if d[m]==key:f=Truebreakif d[m]>key:else:if f==True:print("查找成功!下标为"+str(m))else:print("没有找到!")i<=j(i+j)//2j=m-1i=m+1①给i,j赋初值:i查找的起点j查找的终点②当i<=j时,重复执行查找工作③对分,当前查找的中间值m④判断中值是否就是查找键⑤如果中值不是查找键,则判定下一个查找范围应该在前半部分还是在后半部分。注意i和j的控制。⑥输出查找结果len(d)-1基础落实Jichu luoshi代码变式一:中间值变化key=int(input())d=[10,15,17,18,22,27,35,45,48,52]f=Falsei=0j=len(d)-1while i<=j:m=(i+j)//2if d[m]==key:f=Truebreakif d[m]>key:j=m-1else:i=m+1if f==True:print("查找成功!下标为"+str(m))else:print("没有找到!")① m=int((i+j)/2)③ m=(i+j+1)//2④ m=int((i+j+1)/2)⑤ m=round((i+j)/2)② m=int((i+j)/2+0.5)基础落实Jichu luoshi代码变式一:中间值变化基础落实Jichu luoshi中间值 [0,8] [0,9]m=(i+j)//2 4 4m=int((i+j)/2) 4 4m=int((i+j)/2+0.5) 4 5m=(i+j+1)//2 4 5m=int((i+j+1)/2) 4 5m=round((i+j)/2) 4 5代码变式二:增加一些变量i=0j=len(d)-1while i<=j:m=(i+j)//2if d[m]==key:breakif d[m]>key:j=m-1else:i=m+1c+=1 功能:用于统计查找次数s=“L”或s=s+”L” 功能:用于记录变化过程s=“R”或s=s+”R” 功能:用于记录变化过程基础落实Jichu luoshi代码变式三:找到不结束i=0j=len(d)-1while i<=j:m=(i+j)//2if d[m]==key:breakif d[m]>key:j=m-1else:i=m+1if d[m]>key:j=m-1else:i=m+1if d[m]>=key:j=m-1else:i=m+1基础落实Jichu luoshi下标 0 1 2 3 4 5 6 7 8 9值 8 17 24 30 36 40 55 58 61 66① i m jIf d[m]==key:f=Trueif d[m]>key:j=m-1else:i=m+1运用激活经典再现考法分类例题实践02运用激活Yunyong jihuo经典再现【例1】某二分查找算法的Python程序段如下:a = [8,17,24,30,36,40,55,58,61,66]key = int(input())i,j = 0,9res = []while i<=j:m = (i+j+1)//2if key == a[m]:breakelif keyj=m-1else:i=m+1res.append(a[m])print(res)执行该程序段,当输入的值为30时,程序输出结果为( )A.[40,24] B.[40,24,36] C.[24,36] D.[36,17,24]考点:查找路径核心:快速定位中间值m方法:表格法B下标 0 1 2 3 4 5 6 7 8 9值 8 17 24 30 36 40 55 58 61 66① i m j② i m j③ ijm运用激活Yunyong jihuo变式训练【变式训练1】有如下python程序段:key=int(input("请输入待查数据值:"))d=[17,18,20,23,24,25,28,32,34,35]s="";i=0;j=len(d)-1while i<=j:m=(i+j)//2s=s+" "+str(d[m])if key < d[m]:j=m-1else:i=m+1print(s)输入待查数据值为 20,执行该程序段,则输出的结果是( )A.24 18 20 23 B.24 18 20 C.25 20 D.25 20 23A运用激活Yunyong jihuo经典再现【例2】某二分查找算法的程序如下:i,j=0,7n=0while i<= j :n=n+1m=(i + j)//2if key==d[m]:breakelif key > d[m]:j=m-1else:i=m+1数组元素d[0]到d[7]的值依次为″83,75,62,41,33,27,16,2″,若运行该程序段后,n的值为2,则key的值可能是( )A.62或16 B.62或27 C.75或27 D.75或16C考点:查找次数核心:快速定位中间值m方法:二叉树法417527运用激活Yunyong jihuo变式训练【变式训练2】某二分查找算法的程序如下:i=0j=9c=0while i<=j:c+=1m=(i+j)//2if a[m]i=m+1else:j=m-1print(c)数组元素a的值依次为″2,13,13,14,23,26,29,31,32,38 ″,若运行该程序段后,c的值为3,则key的值不可能的是( )A.11 B.13 C.29 D.32C运用激活Yunyong jihuo经典再现【例3】有如下python程序段:a=[11,22,33,44,55,66]i=0:j=5:p=0key=23while i<=j:p+=1m=(i+j)//2if a[m]==key:breakif a[m]>key:j=m-1else:i=m+1对数组 a 中 6 个有序数据“11,22,33,44,55,66”,用上述程序代码查找数据 “23”,程序执行完毕后,下列各变量值正确的是( )A.i=2 B.j=2 C.m=2 D.p=2A考点:变量的值核心:模拟查找过程方法:表格法运用激活Yunyong jihuo变式训练【变式训练3】某算法的 VB 程序段如下:key=randint(0,3)*2+13i,j,c=0,len(a)–1,0while i<=j:m =(i+j+1)//2if a[m]>=key :i=m+1else:j=m-1c+=1列表a =[23,21,19,18,16,15,14,11],该程序段执行后,下列说法不正确的是( )A.i的值为j+1 B.i的值可能是8C.j的值可能是5 D.c的值一定是3B运用激活Yunyong jihuo考点小结真题实践分析考法选对方法高效突破03练一练1.某二分查找算法的Python程序段如下:d = [11,19,25,33,47,58]i,j = 0,5flag = int(input())while i<=j and f==False:m=(i+j)//2if key==d[m]:f=Trueif keyj=m-1else:i=m+1运行该程序后输入key值为“33”,运行程序结束后下列说法不正确的是( )A.变量f的值为True B.变量i的值为4 C.变量j的值为4 D.变量m的值为3练一练2.有如下VB程序段:key=int(input(″请输入待查数据:″))s,i,j=0,0,6while i <= j:m=(i+j)//2s=s+mif a[m]>Key:j=m-1else:i=m+1print(s)数组元素a[0]到a[6]的值依次为“12,15,18,20,20,20,29”,输入待查数据,执行该程序段后,则程序输出的结果不可能的是( )A.7 B.9 C.15 D.17 展开更多...... 收起↑ 资源预览