scratch课程-52第五十二课二分查找法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
今日任务:
今日我们来利用scratch进行一次二分查找算法的探究。所谓二分查找法,就是这样一
种查找思路,但是,它的使用有一定的局限性,被查找的数列必须是有序数列。它的原理其
Left=1 Right=5
1,3,5,7,11,33,37,42,56,79,88,102,113,117,128,142,155,161,177,208 Mid=3
11≠list(3)且11>list(3),继续在前后半部分查
找!
Left=4 Right=5
1,3,5,7,11,33,37,42,56,79,88,102,113,117,128,142,155,161,177,208
Mid=5 11=list(5),查找结束!返回列表位置5.
如果是按照顺序查找法,需要查找5次,而用二分法只需要4次就可以查找到了,如果有序数列更复杂一些更长一些,二分法比顺序查找法的优势就更加明显!
跟我来挑战Follow me:
第一步:启动scratch软件;
第二步:点击上方的“文件”→“保存”→保存到桌面,文件名:二分查找→点击“保存”;(第二步很很很重要,我希望所有的学生都能养成及时保存作品的好习惯!)
第三步:首先我们先生成一个斐波那契数列
程序较长,我们单独将二分法算法程序
定义为一个单独地功能块(子程序),
用的时候调用就可以了!
还记得left 和right 、mid 分别是什么?再提醒一下!
n=list(mid)
最后直接调用这个功能块即可: 该程序的运行结果是:
课后思考:
(1) 试着总结一下二分法的优缺点?
优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,
且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。
(2)想一想,二分查找法的用途有哪些?二分查找法是最省优查找算法吗?有没有更高
效的算法处理有序数列?
(3)
自己尝试设计出一个随即有序数列,尝试用二分法去查找结果。