二分查找及其算法实现.ppt

二分查找及其算法实现.ppt

ID:53973461

大小:271.00 KB

页数:12页

时间:2020-04-28

二分查找及其算法实现.ppt_第1页
二分查找及其算法实现.ppt_第2页
二分查找及其算法实现.ppt_第3页
二分查找及其算法实现.ppt_第4页
二分查找及其算法实现.ppt_第5页
资源描述:

《二分查找及其算法实现.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、二分查找及其算法实现江苏省扬中中等专业学校陈廷栋活动一:问题引入(目标——引入问题)猜数游戏,请一同学在黑板上写一整数(在1~50内)。活动二:探究学习(目标——扩展问题)以规模为6的数组d为例:用一个数组d[6]来存放序列,left(l)表示查找范围的第一个数组元素的下标,right(r)表示最后一个数组元素的下标,mid(m)表示中间位置元素的下标。(1)  第一种情况:要找的值在后半部分;以查找键x=9为例分析第一次查找:范围d[0]~d[5],m=(0+5)/2,d[m]

2、m+111975311197531lrmd[0]d[1]d[2]d[3]d[4]d[5]第二次查找:范围d[3]~d[5],m=(3+5)/2,d[m]=x,找到了总结一:如果d[m]x所以可以确定接下来要找的范围是前部分。比较后r=m-111975311197531lrmd[0]

3、d[1]d[2]d[3]d[4]d[5]第二次查找:范围d[0]~d[1],mid=(0+1)/2,d[m]=x,找到了总结二:如果d[m]>x,新查找范围为前半部分,  l值不变,r=m-1。11975311197531lmd[0]d[1]d[2]d[3]d[4]d[5]r(3)第三种情况:要找的值找不到;以查找键x=12为例分析:总结三:(1)找到了查找会结束;(2)在l<=r时重复查找,如果还是找不到,查找也会结束。11975311197531lrmd[0]d[1]d[2]d[3]d[4]d[5]11975311197531l

4、mrd[0]d[1]d[2]d[3]d[4]d[5]11975311197531rd[0]d[1]d[2]d[3]d[4]d[5]lm活动三:讨论学习(目标——解决问题)总结查找原理(假设数组按升序排列)二分查找首先找到中间的元素,①该元素对应的值小于查找关键字,此时应在部分继续查找;②该元素对应的值大于查找关键字,此时应在部分继续查找;③该元素对应的值等于查找关键字,那么。如果出现前两种情况,则继续在前半部分或后半部分内进行二分查找,直到出现第三种情况为止。如果沿指定方向测试完所有记录时仍未出现第三种情况,则表示。后半前半找到查找

5、目标,查找结束未找到查找目标,查找也结束特点:如果查找范围内的元素已经排好序,用二分查找方法进行查找要比用顺序查找方法。快得多程序实现:有一个数组有六个元素,已按升序排列,今输入一个数x,要求查找是否为其中的数。对各种情况输出相应的信息。请用二分查找法编写程序。main(){intx,l=0,r=5,m,f=0;inta[6]={1,3,5,7,9,11};printf(“请输入一个数x:”);scanf(“%d”,&x);while(f==0&&l<=r){m=(l+r)/2;if(x==a[m])f=1;elseif(x

6、])r=m-1;elsel=m+1;}if(f==0)printf(“没有找到”);elseprintf(“a[%d]=%d”,m,a[m]);}活动四:课堂检测(目标——检验学习效果)有一个数组有十个元素,已按降序排列(数组元素的值通过赋初值给定),今输入一个数x,要求查找是否为其中的数。对各种情况输出相应的信息。请用二分查找法编写程序。课后作业:已知两集合A={6,12,18,42,44,52,67,94},B={12,6,94},编程判断集合B是否为A的子集(提示:若B中的数在A中均存在,则称B是A的子集)。要求用二分查找法实

7、现。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。