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;
 
 }
 

See also: Ricerca sequenziale, Algoritmo, Array, C, Ricerca sequenziale con sentinella