- 1、本文档共30页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.7 对分查找算法及程序实现;2.对分查找的过程
若key为查找键,数组d存放n个已按升序排序的数据。在使用对分查找时,把查找范围[i,j]的中间位置上的数据d(m)与查找键key进行比较,结果必然是如下三种情况之一:
(1)若keyd(m),查找键小于中点d(m)处的数据。由数组d中的数据的递增性,可以确定:在(m,j)内不可能存在值为key的数据,必须在新的范围(i,m-1)中继续查找;
(2)key=d(m),找到了需要的数据;
(3)keyd(m),由与(1)相同的理由,必须在新的范围(m+1,j)中继续查找。
这样,除了出现情况(2),在通过一次比较后,新的查找范围将不超过上次查找范围的一半。;中间位置数据d(m)的下标m的计算方法:m= (i+j)\2或m=fix((i+j)/2)。以规模为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)(修改查找范围)如果keyd(m),那么j←m-1;否则i←m+1,转到(2)。
(7)(找到)输出结果m,算法结束。;使用流程图描述对分查找的算法如下图所示:;4.对分查找算法程序的实现要点
(1)由于比较次数难以确定,所以用Do语句来实现循环;
(2)在Do循环体中用If语句来判断查找是否成功;
(3)若查找成功则输出查找结果,并结束循环(Exit Do);
(4)若查找不成功,则判断查找键在数组的左半区间还是右半区间,从而缩小范围。;对分查找的程序结构如下(升序序列):;对分查找程序的基本框架:
Private Sub Command1_Click()
i = 1: j = n
Do While i = j
m = (i + j) \ 2
If d(m) = Key Then
输出结果,退出查找(代码略)
ElseIf Key d(m) Then
j = m - 1
Else
i = m + 1
End If
Loop
End Sub;查找次数的估算
对规模为n的数组进行对分查找时,无论是否找到,至多进行 log2n+1( log2n表示大于或等于 log2n的最小整数)次查找就能得到结果,而使用顺序查找算法,在最坏的情况下(查找键在最后一个或没找到),需要进行n次查找,最好的情况是一次查找(查找键在第一个),平均查找次数是 。;本节的学习要求掌握对分查找算法的基本思想,掌握对分查找算法的程序实现要点,学会编写简单的对分查找的程序。掌握对顺序查找与对分查找次数的估算。对分查找算法在历次考试中出现的概率为90%以上,考查方式为选择题与填空题。;;;;;;在一行数据(1、23、6、2、4、5、6、18、5、19)中,存在连续递增的数据序列(1、23)、(6)、(2、4,5、6、18)、(5、19),其序列长度分别为2、1、5、2,则连续递增的数据序列长度最大值max=5。寻找max的方法如下:从第二个数据开始,将该数与它的前一个数比较,如果该数大于它的前一个数,则k←k+1,否则k←1,……;直到最后一个数据处理完成为止。在此过程中将k的最大值保存在变量max中。依据上述算法描述编写的VB程序如下,但加框处代码有错,请改正。;某学校把每个学生的姓名和家长联系电话保存到计算机中,以便遇到紧急情况时可以及时通知学生家长。每个学生的姓名和家长联系电话已经保存在数组xm和phone(都为字符串类型)中。现在要设计一个根据输入的学生姓名查询该学生家长的联系电话的程序。程序运行时的界面如下图所示:;Dim xm(1 To 1000) As String
Dim phone(1 To 1000) As String
Const n As Integer = 1000
Private Sub Command1_Click()
Dim x As String
Dim find As Boolean
Dim i As Integer
x = Text1.Text
i = 0
find = False
Do While (i n) And find = False
①
您可能关注的文档
- 3.1中华民族的爱国主义传统上讲解.pptx
- 日本福田繁雄海报设计分析.ppt
- 日本基础手绘教程-绝对是好东西分析.doc
- 3.1自然资源总量丰富人均不足讲解.ppt
- 3.2.大规模的海水运动讲解.ppt
- 3.2.1根的生长1讲解.ppt
- 3.2.1通过神经系统的调节讲解.ppt
- 日本在宅养老体系下老年集合住宅研究分析.docx
- 3.2《生长素的生理作用》讲解.ppt
- 日常安全教育分析.ppt
- 《GB/Z 44363-2024致热性 医疗器械热原试验的原理和方法》.pdf
- GB/T 16716.6-2024包装与环境 第6部分:有机循环.pdf
- 中国国家标准 GB/T 44376.1-2024微细气泡技术 水处理应用 第1 部分:亚甲基蓝脱色法评价臭氧微细气泡水发生系统.pdf
- 《GB/T 44376.1-2024微细气泡技术 水处理应用 第1 部分:亚甲基蓝脱色法评价臭氧微细气泡水发生系统》.pdf
- GB/T 44376.1-2024微细气泡技术 水处理应用 第1 部分:亚甲基蓝脱色法评价臭氧微细气泡水发生系统.pdf
- 中国国家标准 GB/T 44315-2024科技馆展品设计通用要求.pdf
- GB/T 44305.2-2024塑料 增塑聚氯乙烯(PVC-P)模塑和挤塑材料 第2部分:试样制备和性能测定.pdf
- 《GB/T 44315-2024科技馆展品设计通用要求》.pdf
- GB/T 44315-2024科技馆展品设计通用要求.pdf
- GB/T 39560.9-2024电子电气产品中某些物质的测定 第9 部分:气相色谱-质谱法(GC-MS)测定聚合物中的六溴环十二烷.pdf
最近下载
- 理财教材《小狗钱钱》.pdf
- 护理品管圈问题解决型之提高慢性肾功能不全患者饮食指导知晓率.pptx VIP
- 复旦投毒案林森浩(详细的参考资料整理).docx
- Axure RP原型设计图解微课视频教程(Web+App)(刘刚)PPT全套完整教学课件.pptx
- 2024年国家电网招聘之财务会计类题库附参考答案(轻巧夺冠).docx
- 1精益管理倡导者培训.pptx
- 整本书阅读 《朝花夕拾》(同步课件) 七年级语文上册(统编版2024).pptx
- 2024-2029年中国房地产投资行业发展分析及投资风险预警与发展策略研究报告.docx
- 文旅融合背景下的文化遗产活化措施.pptx VIP
- 非物质文化遗产活化策略PPT.pptx VIP
文档评论(0)