Ricerca sequenziale

Individuare la posizione di un certo elemento all’interno di una sequenza data.

Posizione di un valore k all’interno di un array v

Function Posizione(V: Vettore; N: Integer; K: Real): Integer;
Var
    i, Risp: Integer;
Begin
    Risp:=0;
    For i:=1 to N do
        If(V[i] = K) Then
            Risp:=i;
    Posizione:=Risp;
End;

Restituisce la posizione dell’ultimo valore presente…


Posizione di un elemento (la prima…)

Function Posizione(V: Vettore; N: Integer; K: Real): 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;

Semplifico il ciclo

Function Posizione(V: Vettore; N: Integer; K: Real): 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;

La ricerca sequenziale effettua una scansione dell’array finché non trova il valore richiesto, se presente, o l’array finisce.


Se l’array è 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: Real): 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;