高中信息技术浙教版(2019)选修1 第五章 课时5 二分查找 学案(含答案).docxVIP

高中信息技术浙教版(2019)选修1 第五章 课时5 二分查找 学案(含答案).docx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

课时5二分查找

课时目标

1.通过实例分析,理解顺序查找的基本思想,掌握使用二分查找的一般方法。

2.能根据不同的应用场景,选择合适的数据结构,能灵活使用二分查找算法编写程序。

1.二分查找(BinarySearch)

二分查找又称对分查找或折半查找。

二分查找是指在有序的数据序列中,首先将要查找的数据元素与数组的________________元素进行比较,如果相等,则查找成功并退出查找;否则,根据数组元素的有序性,确定新的____________(在数组的前半部分还是在后半部分);在确定了新的查找范围后,重复进行以上操作,直到找到或查找结束为止。

①二分查找的前提条件是待查找的数据序列必须有序。

②“未找到”是指当前查找区间不存在,即区间左端点大于右端点。

2.二分查找的算法框架

说明:要查找的目标数据元素为key,待查找的数据元素存放在数组d中。

i、j分别为查找区间的起点位置和终点位置,m为查找区间的中间位置,n为数据元素个数。

i=0

j=n-1

whilei=j:

#计算中点位置m

#比较key与d[m],并做相应处理

#若ij,则表示未找到

3.二分查找的程序实现

·设要查找的数据是key,待查找的数据元素存放在数组d中,并已按升序排序。

·输出查找结果,若找到则输出信息“找到!位置为:X”,否则输出“查无此数!”

·输出查找次数c。

二分查找主要代码如下(以升序为例):

输入key的值

c=0#记录查找次数

find=False#设置find的初值

i=0#区间左端点位置

j=n-1#区间右端点位置

while________________:#还未找完并且还未找到,则继续查找

c=c+1#查找次数记数

m=_________#计算中点位置m,等价于m=int((i+j)/2)

ifkey==d[m]:#找到目标元素,并进行相应处理

find=True

print(m)

ifkeyd[m]:#表示要查找的元素比中间位置上的元素大时

i=m+1#调整区间左端点

else:

j=m-1#调整区间右端点

iffind==False:

print(″查无此数!″)

print(″查找次数为:″,c)

例1有如下两组数据:

①1,2,3,4,5,6,7,8,9

②3,4,5,2,1,8,7,6,9

要在上面两组数据中查找某个特定值,下列说法不正确的是()

A.①②都可以直接使用二分查找

B.①②都可以直接使用顺序查找

C.①可以直接使用顺序查找,也可以直接使用二分查找

D.②可以直接使用顺序查找,但不能直接使用二分查找

听课笔记:

变式训练分别使用顺序查找算法和二分查找算法在数据序列“5,6,10,13,15,20,21,26,30”中查找数据10,下列关于查找的次数的说法中正确的是()

A.顺序查找2次,二分查找3次

B.顺序查找3次,二分查找2次

C.顺序查找3次,二分查找3次

D.顺序查找3次,二分查找4次

例2在列表lista中存储的数据依次为:88,78,70,65,60,55,51,45,39,28。现使用二分查找算法在列表lista中查找数据51,共需查找的次数为()

A.1次 B.2次 C.3次 D.4次

听课笔记:

变式训练有100个英语单词已按升序排序并存储在列表listb中,现要使用二分查找算法在列表listb中查找某个单词,则最多的查找次数为()

A.5次 B.6次 C.7次 D.8次

例3某二分查找算法的Python程序段如下:

n=0;flag=True

key=int(input(″输入要查找的数:″))

i,j=0,9

whilei=jandflag:

m=(i+j)∥2

ifa[m]==key:

flag=False

elifa[m]key:

i=m+1

n=n+1

else:

j=m-1

n-=1

若列表a中的元素依次是[5,11,18,23,27,33,34,41,45,69],程序运行后变量n的值是2,则输入的整数key值不可能是()

A.25 B.34 C.45

您可能关注的文档

文档评论(0)

中小学教学资料 + 关注
实名认证
服务提供商

提供小学、初中、高中信息科技教案、试卷、课件等优质教学资源

1亿VIP精品文档

相关文档