Realizziamo in questo semplice tutorial alcuni esempi che riguardano la ricerca sequenziale in C++, detta anche ricerca lineare. Vedremo in seguito invece la ricerca binaria in un array.
In una ricerca di tipo sequenziale gli elementi vengono confrontati appunto in sequenza e quando si trova il valore si termina la ricerca. Quindi tutti gli elementi al più vengono confrontati tutti con la chiave. Se l’elemento viene trovato non è necessario proseguire la ricerca.

Ricerca sequenziale di un elemento in un array in C++
Il primo degli esempi che voglio proporvi è la ricerca sequenziale di un elemento in un array.
Inseriamo gli elementi nel vettore e poi chiediamo l’elemento da ricercare per trovarne la posizione o le posizioni (chiaramente si potrebbe anche impostare un array con elementi già inizializzati).

Utilizziamo un ciclo while che continua finché l’array non è terminato oppure finché non trova l’elemento da ricercare.
#include <iostream>
using namespace std;
#define N 10
int main(){
int a[N];
int i, valore;
cout<<"inseriamo gli elementi nell'array: "<<endl;
for (i=0; i<N; i++){
cout<<"inserisci elemento: ";
cin>>a[i];
}
cout<<"Quale valore dobbiamo cercare?: ";
cin>>valore;
i=0;
while (valore!=a[i] && i<N-1) i++;
if (a[i]%valore==0)
cout<<" valore trovato in posizione: "<<i;
else
cout<<"valore non presente";
return 0;
}
Se invece vogliamo vedere se l’elemento si trova in altre posizioni, dobbiamo continuare la ricerca. Allora avremmo potuto scrivere:
for (i=0; i<N; i++)
if (a[i]%valore==0)
cout<<" valore trovato in posizione: "<<i;
Ricerca di un numero e dei suoi multipli
Un altro semplice esempio riguarda la ricerca di un numero e dei suoi multipli.

Per realizzare questo semplice algoritmo basterà cambiare la seguente condizione: if (a[i]%valore==0).
Ecco dunque il listato d’esempio sulla ricerca sequenziale in C++.
#include <iostream>
using namespace std;
#define N 10
int main(){
int a[N];
int i, valore;
cout<<"inseriamo gli elementi nell'array: "<<endl;
for(i=0; i<N; i++){
cout<<"inserisci elemento: ";
cin>>a[i];
}
cout<<"Quale valore o suo multiplo dobbiamo cercare?: ";
cin>>valore;
for(i=0; i<N; i++)
if(a[i]%valore==0)
cout<<" valore trovato in posizione: "<<i;
return 0;
}
Ricerca di più elementi in un array
Poniamo questa volta la necessità di voler ricercare più elementi in un vettore.

Se vogliamo trovare più di un elemento in un vettore possiamo utilizzare un altro ciclo for con indice j.
#include <iostream>
using namespace std;
#define N 10
int main(){
int a[N];
int n,valore;
cout<<"inseriamo gli elementi nell'array: "<<endl;
for(int i=0; i<N; i++){
cout<<"inserisci elemento: ";
cin>>a[i];
}
cout<<"Quanti numeri dobbiamo cercare?: ";
cin>>n;
for(int j=0;j<n;j++) {
cout<<"Dammi il numero: ";
cin>>valore;
for(i=0; i<N; i++)
if(valore==a[i])
cout<<" valore trovato in posizione: "<<i;
}
return 0;
}
Chiaramente questi sono solo dei semplici esempi di ricerca sequenziale in C++ che possono essere implementati anche con altre soluzioni.

Alcuni link utili
Indice argomenti linguaggio C++
Passaggio di parametri per valore o per riferimento
Equazioni di secondo grado in C++
Le variabili globali e loali in C++

Definizione di funzioni in C++