(选考)漫画:什么是对分查找(二分查找)?
Case 1:
Case 2:
————————————
第一次我们选择500,发现偏大了,
那么下一次的选择范围,就变成了1到499:
第二次我们选择250,发现还是偏大了,
那么下一次的选择范围,就变成了1到249:
第三次我们选择125,发现偏小了,
那么下一次的选择范围,就变成了126到249:
key = Val(Text1.Text) '表示要查找的数
find = False '查找的结果,若find=true表示找到,find=false表示未找到
i = 1 '查找的起始范围
j = n '查找的终点范围
Do While i <= j And Not find '如果还未找完并且未找到
m = (i + j) \ 2 '计算中点位置m
If key = d(m) Then '表示找到的情况
find = True
Text2.Text = "找到!位置为:" + Str(m)
End If
If key > d(m) Then '表示查找的数比中间位置上的数大时
i = m + 1
Else '表示查找的数比中间位置上的数小时
j = m - 1
End If
Loop
If Not find Then Text2.Text = "未找到!"
—————END—————