Ricerca sequenziale
Questo è l'unico algoritmo utilizzabile per trovare un elemento in un array non ordinato (esiste però una variazione: la Ricerca sequenziale con sentinella). Consiste semplicemente nell'esaminare gli elementi uno per uno, fermandosi quando si trova quello desiderato o restituendo un certo valore (-1 o Null) se l'elemento cercato non è presente.
Ecco un'implementazione in C di detto algoritmo. Il parametro lista è l'array in cui cercare, x è l'elemento da cercare e infine n è il numero di elementi contenuti nell'array.
int ricercaSequenziale(int lista[], int x, int n) {
int i;
for (i=0; i<n; i++) {
if (x==lista[i]) {
return i;
}
}
return -1;
}
È anche possibile iniziare la ricerca dall'ultimo elemento, in direzione inversa. Ciò è utile se è più probabile che l'elemento si trovi verso la fine dell'array:
int ricercaSequenzialeInversa(int lista[], int x, int n) {
int i;
for ( i=n-1; i>=0; i--) {
if (x==lista[i]) {
return i;
}
}
return -1;
}
