Dalla A alla Z passando per C - Robotica
Dalla A alla Z passando per C - Robotica
Dalla A alla Z passando per C - Robotica
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Capitolo 19<br />
Tecniche di programmazione e<br />
algoritmi base<br />
In questo capitolo sono presentate alcuni algoritmi di base <strong>per</strong> lo sviluppo di algoritmi più<br />
complessi. Saranno presentati in particolare gli algoritmi di ricerca e di ordinamento.<br />
19.1 Algoritmi di ricerca<br />
Un algoritmo di ricerca <strong>per</strong>mette di trovare un elemento all’interno di un elenco, e di determinare<br />
se eventualmente tale elemento non esiste all’interno dell’elenco.<br />
In particolare, se la ricerca avviene su un vettore di elementi si sarà interessati all’indice<br />
dell’elemento desiderato, mentre se la ricerca avviene su una lista, il risultato della ricerca sarà<br />
costituito dall’indirizzo in memoria dell’elemento, ovviamente qualora la ricerca abbia successo.<br />
19.1.1 La ricerca sequenziale<br />
La ricerca sequenziale è il metodo di ricerca più intutitivo e di immediata realizzazione. Esso<br />
<strong>per</strong>mette di effettuare una ricerca su un qualsiasi insieme di dati, semplicemente scandendo tutti<br />
gli elementi e confrontandoli con l’elemento desiderato fino a trovare una corrispondenza. Se<br />
tutti gli elementi vengono confrontati senza trovare una corrispondenza, l’algoritmo termina con<br />
un insuccesso.<br />
Nella seguente implementazione, il vettore l viene scandito fino a trovare un elemento che<br />
corrisponda all’elemento x desiderato, oppure finchè tutti gli elementi non sono stati esaminati<br />
(i < n). All’uscita del ciclo while si controlla il valore dell’indice i: se questo è inferiore ad n,<br />
allora l’elemento è stato trovato, altrimenti no.<br />
int ssearch(int l[], int x, int n)<br />
{<br />
int i = 0;<br />
while ((i < n) && (x != l[i])) i++;<br />
if (i < n)<br />
return i;<br />
174