vb浜屽垎娉曟煡鎵炬暟缁勫厓绱犳€庝箞瀹炵幇
鍦╒B璇█涓紝鍙互浣跨敤浠ヤ笅浠g爜鏉ュ疄鐜颁簩鍒嗘硶鏌ユ壘鏁扮粍鍏冪礌锛?/p>
Function BinarySearch(arr() As Integer, target As Integer) As Integer
Dim left As Integer
Dim right As Integer
Dim mid As Integer
left = 0
right = UBound(arr)
While left <= right
mid = (left + right) \ 2
If arr(mid) = target Then
Return mid
ElseIf arr(mid) < target Then
left = mid + 1
Else
right = mid - 1
End If
End While
Return -1 ' 濡傛灉鏈壘鍒扮洰鏍囧厓绱狅紝鍒欒繑鍥?1
End Function
鍦ㄤ互涓婁唬鐮佷腑锛?code>arr鏄緟鏌ユ壘鐨勬暟缁勶紝target
鏄鏌ユ壘鐨勭洰鏍囧厓绱犮€?code>left鍜?code>right鍒嗗埆琛ㄧず褰撳墠鏌ユ壘鑼冨洿鐨勫乏杈圭晫鍜屽彸杈圭晫锛?code>mid琛ㄧず褰撳墠鏌ユ壘鑼冨洿鐨勪腑闂翠綅缃€傞€氳繃涓嶆柇璋冩暣left
鍜?code>right鐨勫€硷紝骞跺皢target
涓?code>arr(mid)杩涜姣旇緝锛屾渶缁堝彲浠ユ壘鍒扮洰鏍囧厓绱犵殑浣嶇疆銆傚鏋滄壘鍒扮洰鏍囧厓绱狅紝鍒欒繑鍥炲叾鍦ㄦ暟缁勪腑鐨勭储寮曪紱濡傛灉鏈壘鍒扮洰鏍囧厓绱狅紝鍒欒繑鍥?1銆?/p>