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

Ricerca con sentinella

Precedente
SUPERIORE
Successiva

Il confronto (i <= N) ripetuto ad ogni passo del while () do pu?essere eliminato se si introduce la sentinella, la chiave della ricerca, alla prima posizione libera nel vettore (la (N+1)-esima, senza modificare N...); in questo modo il ciclo si chiude comunque nel caso in cui la chiave non esista.

Function Sentinella(V: Vettore; N: Integer; K: Elemento): Integer;
Var
  i: Integer;
Begin
  i:=1;
  V[N+1]:=K;
  While(V[i] <> K) do
    i:=i+1;
  If(i > N) then
    Sentinella:=0
  Else
    Sentinella:=i;
End;

Se il vettore è ordinato...

Function Sentinella(V: Vettore; N: Integer; K: Elemento): Integer;
Var
  I: Integer;
Begin
  i:=1;
  V[N+1]:=K;
  While(V[i] < K) do
    i:=i+1;
  If(i > N) Or (V[i] > K) then
    Sentinella:=0
  Else
    Sentinella:=i;
End;

Ricerca con sentinella - ApPuNtIdIuNiNfOrMaTiCo

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

Precedente
SUPERIORE
Successiva