信息技术奥林匹克竞赛_VB程序设计的常用算法(5)
发布时间:2021-06-08
发布时间:2021-06-08
p = p + 1
Loop
下面写一查找函数Find,若找到则返回下标值,找不到返回0
Option Base 1
Private Function Find( a( ) As Single,x As Single) As Integer Dim n%,p%
n=Ubound( a )
p = 1
Do While x <> a(p) And p < =n
p = p + 1
Loop
If p>n then p=0
Find=p
End Function
②基本思想:一列数放在数组a(1)---a(n)中,待查找的关键值为key,把key与a数组中的元素从头到尾一一进行比较查找,若相同,查找成功,若找不到,则查找失败。(查找子过程如下。index:存放找到元素的下标。)
Public Sub Search(a() As Variant, key As Variant, index%)
Dim i%
For i = LBound(a) To UBound(a)
If key = a(i) Then
index = i
Exit Sub
End If
Next i
index = -1
End Sub
2.折半查找法(只能对有序数列进行查找)
基本思想:设n个有序数(从小到大)存放在数组a(1)----a(n)中,要查找的数为x。用变量bot、top、mid 分别表示查找数据范围的底部(数组下界)、顶部(数组的上界)和中间,