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
Wend
BinSearch = -1 '查找失败
End Function
使用说明:BinSearch(数组,查找的内容),返回查找到数组的序号,查找失败返回-1。
数组从0开始。
全部评论