对分查找算法巩固复习公开课教案教学设计课件案例试卷

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
j=m-1 Else
i=m+1 End If Print i,j,m Loop
key=Text1.Text i=1 : j=n : Fl=j And Not Flag
m=(i+j)\2 if key=a(m) Then Flag=True if a(m)>key Then
Int(Log2n) ≤最少查找次数≤ Int(Log2n)+1
对分查找选择题做题方法:
一、key已知,直接代入查找; 二、二叉树解题
(P207.T5)5.某对分查找算法的 VB程序段如下:
i=1: j=6: f=False
key=Val(Text1.Text)
Do While i<=j and f=False
A.变量f的值为True
B.变量i的值为4
C.变量j的值为4
D.变量m 的值为3
做题方法:key已知,代入直接查找即可。
D
做题方法:二叉树解题。
2021年1月选考卷12题 C
m=(i+j)\2
If key=a(m) then f=True
If key<a(m) then j=m-1 Else i=m+1
Loop
数组元素a(1)到a(6)的值依次为“11,19,25,31,47,58”。文
本框 Text1 中输入“31”后运行该程序,则以上程序段运行结束后,
下列说法不正确的是 B
j=m-1 Else
i=m+1 End If Print i,j,m Loop
注意:key=a(m)时继续查找的范围
例1:根据Key值查找该数据在数组中最后出现的位置 L= 1 : R = 10 : n = 10 : Key =75 ′a(1)-a(10)的值分别为:86,78,77,75,75,75,60,54,54,51 Do While L <= R
j=m-1 Else
i=m+1 End if Print i,j,m Loop
key=Text1.Text i=1 : j=n : Flag=False Do While i<=j And Not Flag
m=(i+j)\2 if key=a(m) Then
Flag=true Elseif a(m)>key Then

2018年11月——16题:在左右交替上升的数据中对分查找

2019年4月——12题:查找相邻两个元素的最大差值

2020年1月——12题:Key值未知,判断可能的查找次数及访问到的元素
2020年7月——11题:Key值和数组元素未知,判断依次访问元素的位置
2021年1月——12题:Key值和数组元素未知,判断依次访问的元素
对分查找实现:
对分查找特点:1.数组有序(局部有序)
2.最多查找次数:Int(Log2n)+1
对分查找核心代码(数组d ,规模为n,升序)
key=Text1.Text i=1 : j=n Do While i<=j
m=(i+j)\2 if key=a(m) Then
Exit do Elseif a(m)>key Then
对分查找算法巩固提升

2015年10月——11题:查找范围问题

2016年4月——12题:利用索引数组进行对分查找

2016年10——12题:已知查找次数,判断key值
找 算 法
2017年4月——11题:已知Key值,判断输出结果 2017年11月——12题:Key为随机值,判断输出结果

2018年4月——12题:根据key的奇偶性,确定查找范围
m =Fix((L + R) / 2)
If ① Key<=a(m) Then
L=m+1 Else
R=m-1 End If Loop Label1.Caption= Str(L-1)
在有重复数据的数组中(降序),根据Key值查找该数据在数组中最先出现的位置
Key<a(m)
找不到或查找最先(后)出现的元素时(中途不退出)
相关文档
最新文档