VB常用算法(八)查找
1.算法描述
1)顺序搜索
逐个查找元素。如果有,记录位置,然后跳出循环;否则,搜索会失败。
代码如下:
私有子搜索(a(),ByVal键,作为整数的索引)
Dim i%
For i = LBound(a)到UBound(a)
如果a(i) = Key,则' find,将元素下标保存在索引中并结束搜索。
Index = i
退出Sub
结束If
接下来我
Index = -1 '如果未找到,则索引值为-1。
结束Sub
二分搜索法
顺序搜索效率很低。当阵列按顺序排列时,可以使用二分搜索法来提高效率。
算法思想:
代码如下:
Private Sub birSearch(a()、ByVal low%、ByVal high%、ByVal Key、index%)
Dim mid为整数
If low > high Then '未找到。
index = -1
退出Sub
结束If
mid =(低+高)\ 2 '取搜索间隔的中点。
If Key = a(mid) Then '找到,并返回下标。
index = mid
退出Sub
ElseIf Key < a(mid) Then '搜索间隔在上半部分。
高=中1
其他
low = mid+1 '搜索间隔在下半部分。
结束If
Call Bir Search (a,low,high,key,index)'递归调用搜索函数。
End Sub
0条评论