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