资源简介 二分查找算法的应用评测习题(学生通过Moodle课程网站完成)1、下列关于算法的描述正确的是()A、算法必须有输入B、算法就是程序C、算法必须有输出D、算法的步骤可以是无穷的2、二分查找又称折半查找,是一种运用于有序数列的高效查找算法。下列数列中适合二分查找算法的是()(1)1199517239(2)305263717881(3)67626861515(4)857859531918选择一项:A.(1)(2)B.(2)(4)C.(2)(3)D.(3)(4)3、下列流程图中能描述循环结构的是( )①????②????③????④?????A.①③??????B.②④??????C.②③④???D.①②④4、在Python中,int(x)函数的功能是返回不大于x的最大整数,设a=3,b=4,c=5,则下列表达式的运算结果中值最大的是()。A.abs(a-b)B.a2+b2-c2C.int(2a-c/b)D.sqrt(c)5、以下程序段运行后,s的值是()。n=0s=0whiles<=10:n=n+3s=s+nprintsA.3B.18C.0D.306、2005年10月9日,国家测绘局正式宣布珠穆朗玛峰的高度为8844.43米。现有一张白纸的厚度大约是0.08毫米,对折一次,厚度为0.16毫米;对折两次,厚度变为0.32毫米。假设这张纸有足够大,可对折任意次,那么这张纸至少对折多少次,才能达到珠穆朗玛峰的高度?以下是求解该问题的程序片段,请补全代码:height=8844430#珠穆朗玛峰的高度h=0.08#定义一张纸的厚度cnt=_________#定义对折次数whileh<height:cnt=h=__________printcnt(共19张PPT)获取数据查找过程输出结果DataLookupResult1324有效控制Control获取数据Data查找过程Lookup有效控制Control输出结果Result1324被查找数据序列数据目标数据目标数据:即用户要查找的数据。input()函数的返回值是字符型数据,此算法中需要借助int()函数将其转换为数值型数据。被查找数据序列a=[7,14,18,21,23,29,31,35,38]b=[38,35,31,29,23,21,18,14,7]获取数据Data查找过程Lookup有效控制Control输出结果Result1324查找查找范围?查找过程?范围一直在变,该如何界定?目标数据与被查找数据序列中的数进行比较例:对分查找值为key=19的记录的过程:low=0high=8mid=(low+high)//2=4high=3mid=1mid=27141821232931353819<2319>1419>18low=2mid=319<21low=3low>high查找结束,没找到high=2a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]获取数据Data查找过程Lookup有效控制Control输出结果Result1324算法有穷性:一个算法所包含的运算步骤是有限的。思考:对于二分查找算法,”数据查找”应该在何时停止?可以找,但没必要找了不能找了0201该算法可以被反复执行的必要条件是:获取数据Data查找过程Lookup有效控制Control输出结果Result132412找到了目标数据未找到目标数据输出结果找到目标数据key思考:这种情况的结果反馈在代码的哪个位置比较合理?输出结果Result未找到目标数据key思考:何时确定目标数据确实不存在是合理的?无数可查之时,即满足条件:if(low>high)print(“Sorry!查无此数!”)输出结果Resultlow>high牛刀小试:(结合算法,编写、调试程序)获取数据范围初始化查找过程输出未找到时的反馈a=[7,14,18,21,22,29,31,35,38]key=int(input("请输入要查找的数据:"))if():print(“Sorry!查无次数!”)课堂小结:二分查找的前提是对有序数列高效缩小查找范围,直到找到目标或者无数可查有效控制查找的节奏适时适地输出正确结果适合的就是最好的!:)范围有序控制输出谢谢聆听《二分查找算法》教学设计【导入环节】:1、实践体验:猜数字游戏:学生猜数字,老师给出反馈,同时板书“猜的过程”。游戏结束后,老师引导学生分析游戏过程中的几点问题思考,进而引出“有序”、“高效”、“二分”这三个关键词,导入课程主题——“二分查找算法”。设计意图:让学生切身体会二分的思想,引出本节课的学习主题“二分查找算法”【授课过程】:结合刚刚体验过的“猜数字游戏”及计算机解决问题的一般过程,本节课将从以下四大环节来开展探究:(1)获取数据(分析目标数据、被查找数据的特点及其获取方法,提出“二分查找算法”的应用前提条件——“数据有序”)(2)查找过程(本节课的重点)【学生活动】:为了让大家更直观地理解此算法,采用过程模拟的方式,让学生在活动的过程中,自我总结算法的核心(循环体),并由老师引导、学生分析,师生共同板书该算法的代码实现过程。设计意图:不仅提升学生的课堂参与感,而且可以让学生更为直观的理解二分查找算法的查找过程,通过老师设计的数码牌和各标记指示牌,使学生理解各标记变量的含义,为接下来的自主编程做好铺垫。【学生实践】:结合分析出的二分算法核心代码,尝试完成升序序列中的二分查找源程序代码。设计意图:通过自主编辑、调试程序,进一步理解“二分查找算法”的思想,掌握Python编程的细节与技巧。(3)有效控制任何算法都要“知行知止,知止而行”!循环条件的设定非常关键,该过程的分析由老师引导、学生思考总结,共同板书来进行讲解。【知识探究】:查找过程可以被重复执行,必要条件即程序中要有可查之数,即while(low<=high),查找过程可以被反复执行.算法的有穷性要求在有限步骤内结束,那么二分查找算法何时可以停止呢?如果找到,可以停止;如果没有找到,又该在何时停止?(4)、师生共同分析如何适时适地的输出结果。【拓展延伸】:学生自主完成针对降序序列实现“二分查找算法”。设计意图:进一步巩固本节课所学知识,提升学生的计算思维、灵活运用知识的能力。【课堂小结】:结合“有序”、“范围”、“控制”、“输出”四个关键词来总结本堂课所学内容,重点是理解二分查找算法的思想,在用计算机解决问题的过程中,切实培养自己的计算思维能力。面对实际应用问题时,我们应该善于开动脑筋,努力寻求高效的解决方案,在处理问题的过程中,我们应该学会有效控制各种因素,使问题的解决能按照我们预期的方向发展。 展开更多...... 收起↑ 资源列表 《二分查找算法》 教学设计.doc 二分查找算法的应用评测习题.doc 高中信息技术必修一《二分查找算法》.ppt