'Primer 12e: binarna pretraga (sortiranog) niza
'u sortiranom nizu dimenzije n trazimo element x
'vrednost funkcije je True akko je element x pronadjen u nizu
Function binarnaPretraga(niz() As Integer, ByVal n As Integer, x As Integer) As Boolean
Dim poc As Integer
Dim kraj As Integer
Dim indeks As Integer
Dim nadjen As Boolean
nadjen = False
poc = 1
kraj = n
While (poc <= kraj) And (Not nadjen)
indeks = (poc + kraj) \ 2 'Celobrojno deljenje
If niz(indeks) = x Then
nadjen = True
ElseIf niz(indeks) < x Then
poc = indeks + 1
Else 'niz(indeks) > x
kraj = indeks - 1
End If
Wend
binarnaPretraga = nadjen
End Function
Function binPretragaRekurzivno(niz() As Integer, vrednost As Integer, donjaGranica As Integer, gornjaGranica As Integer) As Integer
Dim srednji As Integer
If gornjaGranica < donjaGranica Then
binPretragaRekurzivno = -1 'nije pronadjen
Else
' donjaGranica + ((gornjaGranica - donjaGranica) \ 2)
srednji = (donjaGranica + gornjaGranica) \ 2
If niz(srednji) > vrednost Then
binPretragaRekurzivno = binPretragaRekurzivno(niz, vrednost, donjaGranica, srednji - 1)
ElseIf niz(srednji) < vrednost Then
binPretragaRekurzivno = binPretragaRekurzivno(niz, vrednost, srednji + 1, gornjaGranica)
Else
binPretragaRekurzivno = srednji 'pronadjen
End If
End If
End Function