VB程序设计:二分查找。在一个已经按从小到大排好序的数组中查找由inputbox输入的数,输出其位
VB程序设计:二分查找。在一个已经按从小到大排好序的数组中查找由inputbox输入的数,输出其位置或“没找到”的结论。...
VB程序设计:二分查找。在一个已经按从小到大排好序的数组中查找由inputbox输入的数,输出其位置或“没找到”的结论。
展开
1个回答
展开全部
Public Function BinSearch(ByRef strElement() As String, ByVal strKey As String) As Long
Dim lngLow As Long
Dim lngHigh As Long
Dim lngMiddle As Long
lngLow = 0
lngHigh = UBound(strElement)
While (lngLow <= lngHigh)
lngMiddle = (lngLow + lngHigh) / 2
If strElement(lngMiddle) = strKey Then
BinSearch = lngMiddle
Exit Function
Else
If strElement(lngMiddle) > strKey Then
lngHigh = lngMiddle - 1
Else
lngLow = lngMiddle + 1
End If
End If
End While
BinSearch = -1 '查找失败
End Function
追问
变量定义可不可以简单点,用字母,都看不懂
追答
Public Function BinSearch(ByRef a() As String, ByVal K As String) As Long
Dim L As Long
Dim H As Long
Dim M As Long
L = 0
H = UBound(a)
While (L <= H)
M = (L + H) / 2
If a(M) = K Then
BinSearch = M
Exit Function
Else
If a(M) > K Then
H = M - 1
Else
L = M + 1
End If
End If
End While
BinSearch = -1 '查找失败
End Function
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询