Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Input:
array.
elemento ricercato.
int i;
for (i = 0; i < n; ++i) {
// Interrompe la ricerca con successo alla prima
corrispondenza trovata
Ricerca lineare - if (insieme[i] == x)
return i;
linguaggio C }
// L'intera sequenza è stata esaurita senza trovare
corrispondenze
return -1;
}
Miglior caso
Elemento cercato è nell’ultima posizione della lista o non è proprio presente nell’array.
Nel primo caso, la ricerca termina con successo con n comparazioni.
Nel secondo caso, la ricerca termina fallendo con n comparazioni.
Quindi, nel peggior caso, l’algoritmo fa O(n) operazioni.
Applicazioni
È efficiente quando:
la lista contiene pochi elementi (array di medie dimensioni – circa 100 elementi o meno).
si esegue una singola ricerca in un elenco non ordinato.
bisogna cercare molti valori nello stesso elenco.
Variante con sentinella
linguaggio C int i = 0;
while (lista[i] != x) i++;
// Identificazione dell'esito
return (i < n) ? i : -1;
}
Ricerca lineare Ricerca binaria
Elenco ordinati di
Richiede più tempo Richiede meno tempo
elementi
Differenze -
ricerca lineare Vs ricerca binaria
Fonti
https://en.wikipedia.org/wiki/Linear_search
https://it.wikipedia.org/wiki/Ricerca_sequenziale
https://www.gatevidyalay.com/tag/linear-search-algorithm-pseudocode/
https://www.youtube.com/watch?v=GPY0b8drb0o
http://www.valcon.it/pp/ricerca-sequenziale-con-sentinella/
https://piazza.com/class_profile/get_resource/h7blr0wpzhd2bg/haqg87fkimos9
https://it.gadget-info.com/difference-between-linear-search
https://it.sawakinome.com/articles/programming/difference-between-binary-search-and-linear-
search.html
FINE
Grazie per l’attenzione.