code217a.txt

来自「VB大全(精华版)源代码」· 文本 代码 · 共 40 行

TXT
40
字号
Private Function Binary_Search(ByRef SrchArr() As Integer, ByVal _
    Value As Integer) As Integer
  Dim Found As Boolean, High As Integer, Low As Integer
  Dim Mid As Integer
  Found = False
  High = Ubound(SrchArr)
  Low = 0
  Mid = (High + Low) / 2
  Debug.Print
  Debug.Print "Looking for: "; Value
  Do While Not Found And (High >= Low)
    Debug.Print "Low: "; Low; " Mid: " ; Mid ; " High: "; High
    If Value = SrchArr(Mid) Then
        Found = True
    ElseIf Value < SrchArr(Mid) Then
        High = Mid - 1
    Else
        Low = Mid + 1
    End If
    Mid = (High + Low) / 2
    If Not Found Then
      Binary_Search = -1
    Else
      Binary_Search = Mid
    End If
  Loop
End Function

Public Sub Main()
  Dim intArray(99) As Integer, I as Integer
  For I = 0 to 99
    intArray(I) = I
  Next

  Debug.Print "Result of search ", Binary_Search(intArray, 33) 
  Debug.Print "Result of search ", Binary_Search(intArray, 75)
  Debug.Print "Result of search ", Binary_Search(intArray, 1)
  Debug.Print "Result of search ", Binary_Search(intArray, 1001)
End Sub

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?