3.7对分查找算法及程序实现

3.7对分查找算法及程序实现

ID:36097701

大小:1.17 MB

页数:38页

时间:2019-05-05

3.7对分查找算法及程序实现_第1页
3.7对分查找算法及程序实现_第2页
3.7对分查找算法及程序实现_第3页
3.7对分查找算法及程序实现_第4页
3.7对分查找算法及程序实现_第5页
资源描述:

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

1、3.7对分查找算法及程序实现1.对分查找的概念对分查找又称二分查找,是一种高效的查找方法。对分查找的前提是,被查找的数据序列是有序的(升序或降序)。对分查找的基本思想是在有序的数列中,首先将要查找的数据与有序数列内处于中间位置的数据进行比较,如果两者相等,则查找成功;否则就根据数据的有序性,再确定该数据的范围应该在数列的前半部分还是后半部分;在新确定的缩少范围内,继续按上述方法进行查找,直到找到要查找的数据,即查找成功,如果要查找的数据不存在,即查找不成功。2.对分查找的过程若key为查找键,数组d存放n个已按升序排序的数据。在使用对分查找时,把查找范围[i,

2、j]的中间位置上的数据d(m)与查找键key进行比较,结果必然是如下三种情况之一:(1)若keyd(m),由与(1)相同的理由,必须在新的范围(m+1,j)中继续查找。这样,除了出现情况(2),在通过一次比较后,新的查找范围将不超过上次查找范围的一半。中间位置数据d(m)的下标m的计算方法:m=(i+j)2或m=fix((i+j)/2)以规模为

3、16的递增数组d为例,观察对分查找的过程。要查找的数据key为37。3.对分查找算法的表示使用对分查找在数组变量d中查找key,用自然语言描述的算法如下:(1)(确定初始查找范围)i←1,j←n。(2)(是否能继续查找?)如果i≤j,那么转到(4)。(3)(找不到)输入出结果0,算法结束。(4)(计算中点位置)m←(i+j)2。(5)(相等?)如果d(m)=key,那么转到(7)。(6)(修改查找范围)如果key

4、程序的实现要点(1)由于比较次数难以确定,所以用Do语句来实现循环;(2)在Do循环体中用If语句来判断查找是否成功;(3)若查找成功则输出查找结果,并结束循环(ExitDo);(4)若查找不成功,则判断查找键在数组的左半区间还是右半区间,从而缩小范围。对分查找的程序结构如下(升序序列):对分查找程序的基本框架:PrivateSubCommand1_Click()i=1:j=nDoWhilei<=jm=(i+j)2Ifd(m)=KeyThen'输出结果,退出查找(代码略)ElseIfKey

5、Sub查找次数的估算对规模为n的数组进行对分查找时,无论是否找到,至多进行log2n+1(log2n表示大于或等于log2n的最小整数)次查找就能得到结果,而使用顺序查找算法,在最坏的情况下(查找键在最后一个或没找到),需要进行n次查找,最好的情况是一次查找(查找键在第一个),平均查找次数是。本节的学习要求掌握对分查找算法的基本思想,掌握对分查找算法的程序实现要点,学会编写简单的对分查找的程序。掌握对顺序查找与对分查找次数的估算。对分查找算法在历次考试中出现的概率为90%以上,考查方式为选择题与填空题。1.下列有关查找的说法,正确的是()A.顺序查找时,被查找

6、的数据必须有序B.对分查找时,被查找的数据不一定有序C.顺序查找总能找到要查找的关键字D.一般情况下,对分查找的效率较高D2.某网站报名参加免费三亚游的会员序列号有:101、135、238、342、450、558、633、708、846、910。采用对分查找,查找序列号为846号网友信息的过程中,依次被访问的序列号是()A.450、708、846B.450、708、910、846C.558、708、846D.558、708、910、846A3.某电子图书馆网站有10万本图书记录(已索引排序),假设从中取出一条记录并与待查找项进行比较所花时间为10毫秒,则用对分

7、法在该系统中查找任意一本指定图书最多花费的时间约为()A.100万毫秒B.50万毫秒C.10毫秒D.170毫秒D4.某数组有7个元素,依次为158、234、369、478、552、697、748。若采用对分查找法在该数组中查找数据748,需要查找的次数是()A.1B.2C.3D.4C5.在有序单词序列:As、Book、Door、English、Floyd、Good、Hello、Sun中,用对分查找法找到单词“Good”所需要的查找次数是()A.1B.2C.3D.4B6.某8位男生的肺活量数据放在数组元素a(l)到a(8)中,其数据依次为“3205、3408、3

8、471、3498、3621、3829、

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

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

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