配列内の要素を二分法検索する方法
VB言語では、次のコードを使って配列要素を2分法で検索することができます。
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
上記のコードにおいて、配列arrから要素targetを探索する。左端left、右端rightを探索領域の境界として設定し、探索領域の中央をmidとして設定する。左端leftと右端rightを調整し、要素targetとarr[mid]を比較することで、探索領域を絞り込んでいく。要素targetの位置が特定できればそのインデックスを返し、見つけることができなかった場合には-1を返す。