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

Ricerca sequenziale

Precedente
SUPERIORE
Successiva

Posizione: l'ultima... posizione di un elemento

function Posizione(V: Vettore; N: Integer; K: Elemento): Integer;
var
  i, Risp: Integer;
begin
  Risp:=0;
  for i:=1 to N do
    if(V[i] = K) then
      Risp:=i;
  Posizione:=Risp;
end;

Esempio

V={1, 30, 40, 2, 4, 5, 2} e K=2 --> Posizione=7...

Ricerca sequenziale: posizione di un elemento (la prima...)

Function Posizione(V: Vettore; N: Integer; K: Elemento): Integer;
Var
  i, Risp: Integer;
Begin
  i:=1;
  Risp:=0;
  While(i <= N) And (Risp = 0) do
    begin
      if(V[i] = K) then
        Risp:=i;
      i:=i+1;
    end;
  Posizione:=Risp;
End;

La ricerca sequenziale effettua una scansione del vettore finché non trova l'elemento, se presente, o il vettore finisce.

Esempio

V={1, 30, 40, 2, 4, 5, 2} e K=2 -> Posizione=4

Si può semplificare il blocco while () do

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

Se il vettore è ordinato e l'elemento non compare la ricerca sequenziale può essere interrotta se l'elemento esaminato è maggiore di quello cercato

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

Esempio

V={1, 2, 2, 4, 5, 40, 50} e K=20 --> Posizione=0 e i=6...

Ricerca sequenziale - ApPuNtIdIuNiNfOrMaTiCo

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

Precedente
SUPERIORE
Successiva