请vb哥哥姐姐帮俺解释一下拆半查找法,就是下面的实例

来源:百度知道 编辑:UC知道 时间:2024/06/10 23:31:54
就是这段代码 帮忙解释一下

Private Sub Form_Load()
'学号存放在数组h()中
h(1) = 1201: h(2) = 1202: h(3) = 1203
h(4) = 1205: h(5) = 1206: h(6) = 1207
h(7) = 1209: h(8) = 1210: h(9) = 1211
h(10) = 1215
'成绩存放在数组d(,)中
d(1, 1) = 92: d(1, 2) = 86
d(2, 1) = 78: d(2, 2) = 71
d(3, 1) = 83: d(3, 2) = 74
d(4, 1) = 67: d(4, 2) = 75
d(5, 1) = 71: d(5, 2) = 55
d(6, 1) = 62: d(6, 2) = 80
d(7, 1) = 98: d(7, 2) = 83
d(8, 1) = 99: d(8, 2) = 80
d(9, 1) = 57: d(9, 2) = 67
d(10, 1) = 80: d(10, 2) = 78
End Sub
Private Sub command1_Click()
Dim no As Integer, flag As Integer
Dim m As Integer, top As Integer, bott As Integer
flag = -1 '置未找到标志
top = 1: bott = 10 '设定范围
no = Val(Text1.Text) '取学号
If no < h(top) Or no >

我没学过VB
但是折半查找知道
就是二分查找
说个最简单的
求根n的近似值 精确到N位
x1:=0;{范围}
x2:=n;
while abs(x1-x2){abs 绝对值的意思}>0.00000000000001 do{控制精度}
begin
x:=(x1+x2)/2;{折半}
if x*x<n then x1:=x{重新确定范围}
else x2:=x;
if x*x=n then break;
inc(i);{i:=i+1;}
end;
最后x得知就是根n的近似值