scratch课程-52第五十二课二分查找法

scratch课程-52第五十二课二分查找法
scratch课程-52第五十二课二分查找法

今日任务:

今日我们来利用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)

自己尝试设计出一个随即有序数列,尝试用二分法去查找结果。

相关主题
相关文档
最新文档