|
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; EsempioV={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. EsempioV={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; EsempioV={1, 2, 2, 4, 5, 40, 50} e K=20 --> Posizione=0 e i=6... |
|