大学计算机基础 课件 10.4.2二分查找.pptx

大学计算机基础 课件 10.4.2二分查找.pptx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

大学计算机基础——基于计算思维(Windows10+Office2016)第10章算法思维与运用10.4.2二分查找10.4查找算法

问题5二分查找某体校要招各类体育专长人员,根据专业不同,对身高有不同的要求。现有若干人的身高数据按从低到高的顺序存放在数据文件“data2.txt”中(每行一个),当招生人员从键盘输入一个身高值,请在文件中查找该身高值,若找到则给出其位置(第几行),若没找到,提示“nofound”。data2.txt若找到则给出其位置(第几行)输入查找若没找到,提示“nofound”输出

问题5二分查找1.问题分析本问题中数据集中的数据是有序的,已按从低到高的顺序排好,那能不能利用这一条件提高查找效率呢?

问题5二分查找1.问题分析先看这样一个游戏:猜某件商品的价格,已知商品的价格范围(假设为1~100元),每猜一次主持人可以回答游戏者所猜价格比实际价格高了还是低了,若在规定次数内就能猜对者,就可免费获得该商品。为了减少猜的次数,提高命中的效率,你会怎样猜呢?通常会从1到100元的中间值50元开始猜,如果高了,则进一步从1到50元的中间值25再开始猜;而如果低了,则从50到100元的中间值75开始猜,这种猜价格的方法称为折半方法。把折半方法应用在查找中,就称为折半查找法(又称二分查找),它是在一个有序的元素列表中查找特定值的一种方法,该顺序可以是升序,也可以是降序。

问题5二分查找1.问题分析二分查找顺序查找

问题5二分查找2.算法实现设计折半查找子程序halfsearchhalfsearch的参数和顺序查找算法中search的一样,输入参数有a、n、key,输出参数有flag、wz。

问题5二分查找2.算法实现设计折半查找子程序halfsearch假设用left表示每次查找范围的最小值,right表示每次查找范围的最大值,第1次查找范围是(left=1,right=n),以后每次不是left变,就是right变,当最后变到leftright就说明查找失败,所以其也作为循环结束的一个条件。第1次查找范围(left=1,right=n)......第n次查找范围leftright,查找失败

问题5二分查找2.算法实现设计折半查找子程序halfsearch在查找前,要完成flag、wz、left、right和middle(中间位置)的初始化。完成初始化

问题5二分查找2.算法实现设计折半查找子程序halfsearch开始查找后,是取中间位置的值(即a[middle])和key比较,若相等,则状态变量flag=1;否则还要判断a[middle]是小于还是大于key值,从而决定是left变化还是right变化,然后重新计算中间位置,再重复查找。

感谢聆听!大学计算机基础——基于计算思维(Windows10+Office2016)

您可能关注的文档

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档