s02数组_二分查找

Sub 二分查找()
    nums = Array(-1, 0, 3, 5, 9, 12)
    target = 12
    Debug.Print (search(nums, target))
End Sub

Public Function search(nums, target)
    If target < nums(0) Or target > nums(UBound(nums)) Then search = -1
    Dim left: left = 0
    Dim right: right = UBound(nums)
    Do While left <= right
        Dim mid
        mid = Int(left + ((right - left) / 2))
        If nums(mid) = target Then
            search = mid: Exit Do
        ElseIf nums(mid) < target Then
            left = mid + 1
        ElseIf nums(mid) > target Then
            right = mid - 1
        End If
    Loop
End Function

 

posted @ 2022-11-23 10:31  依云科技  阅读(17)  评论(0)    收藏  举报