|
|
L'algoritmo di ricerca binaria function Ricerca(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
Ricerca:=0
else
Ricerca:=MEDIO;
end;
Possiamo concludere, come prima, che
e trascurare i conteggi. I calcoli per T danno
Quanto vale m? La dimensione del vettore sul quale si effettua la ricerca volta per volta č
Quando la potenza di 2 a denominatore raggiunge N il ciclo while() termina sicuramente, cioč quando
quindi nel caso pessimo
Esempi numerici
Ipotizzando, pessimisticamente, che i coefficienti siano molto sfavorevoli per la ricerca binaria, per esempio
calcoliamo i tempi di attesa al variare di n
Anche in questa situazione di svantaggio l'algoritmo di ricerca binaria si comporta meglio se applicato ad appena 200 elementi! |
|