Home • ECDL • Algoritmi • Java • Basi di dati • Seconda prova • Eccetera • Cerca nel sito

Ricerca binaria

Precedente
SUPERIORE
Successiva

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

Ricerca binaria - ApPuNtIdIuNiNfOrMaTiCo

Home • ECDL • Algoritmi • Java • Basi di dati • Seconda prova • Eccetera • Cerca nel sito

Precedente
SUPERIORE
Successiva