La ricerca binaria si applica ai vettori ordinati. Essa controlla se l'elemento richiesto si trova nella posizione centrale del vettore altrimenti concentra la ricerca nella parte bassa (alta) se ha trovato un elemento più grande (piccolo), finché non trova l'elemento oppure rimane da esaminare un sottovettore vuoto.
Function Binaria(V: Vettore; N: Integer; K: Elemento): Integer;
Var
INF, SUP, MEDIO: Integer;
ANCORA: Boolean;
Begin
INF:=1;
SUP:=N;
ANCORA:=True;
While(INF <= SUP) And (ANCORA) do
Begin
MEDIO:=(INF+SUP) Div 2;
if(V[MEDIO] < K) then
INF:=MEDIO+1
else if(V[MEDIO] = K) then
ANCORA:=False
else
SUP:=MEDIO-1;
End;
If(ANCORA) then
Binaria:=0
Else
Binaria:=MEDIO;
End;
Esempi
V={10, 20, 30, 40, 41, 42, 43, 44, 45}, N=9, K=20
INF=1, SUP=9 --> MEDIO=5, V[5]=41
INF=1, SUP=4 --> MEDIO=2, V[2]=20=K --> Binaria=2
V={10, 20, 30, 40, 41, 42, 43, 44, 45}, N=9, K=35
INF=1, SUP=9 --> MEDIO=5, V[5]=41
INF=1, SUP=4 --> MEDIO=2, V[2]=20
INF=3, SUP=4 --> MEDIO=3, V[3]=30
INF=4, SUP=4 --> MEDIO=4, V[4]=40
INF=5, SUP=4 --> Binaria = 0
|