18.08.2013 Views

Dalla A alla Z passando per C - Robotica

Dalla A alla Z passando per C - Robotica

Dalla A alla Z passando per C - Robotica

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

• dai suoi due indici<br />

• da due puntatori agli elementi successivi su riga e colonna<br />

18.7 Memorizzazione delle strutture astratte: tavole<br />

Sono memorizzate tipicamente in strutture sequenziali.<br />

I metodi <strong>per</strong> l’accesso ai singoli elementi possono essere molto diversi in funzione dell’uso<br />

previsto <strong>per</strong> le tavole stesse: la scelta del metodo ha l’obiettivo di minimizzare la lunghezza<br />

di ricerca (numero di chiavi esaminate prima di raggiungere l’elemento corrispondente ad una<br />

chiave prefissata).<br />

I metodi più diffusi sono:<br />

• ricerca sequenziale<br />

• ricerca binaria<br />

• accesso diretto<br />

• accesso calcolato (hash)<br />

18.8 Ricerca sequenziale<br />

Gli elementi nella tabella sono allocati senza seguire alcuna regola di ordinamento.<br />

L’o<strong>per</strong>azione di ricerca si effettua scandendo gli elementi della tabella fino al re<strong>per</strong>imento<br />

della chiave desiderata.<br />

è una tecnica scarsamente efficiente in cui il tempo medio di ricerca è pari a N/2, se N è la<br />

lunghezza della tavola.<br />

Si può migliorare il tempo di accesso concentrando gli elementi in cui si prevede un accesso<br />

frequente nelle prime posizioni.<br />

Una tavola su cui si o<strong>per</strong>a una ricerca sequenziale può essere memorizzata come struttura<br />

sequenziale o a catena.<br />

18.9 Ricerca binaria<br />

La tavola deve essere ordinata secondo le chiavi.<br />

La ricerca binaria richiede il confronto fra la chiave cercata e quella dell’elemento centrale<br />

della tavola.<br />

Il risultato del confronto indica se la ricerca ha termine oppure in quale metà della tavola<br />

deve continuare.<br />

Il procedimento viene iterato.<br />

Il tempo massimo di ricerca è log2N.<br />

E’ una tecnica di ricerca veloce, ma è difficile inserire nuovi elementi (riordino delle chiavi).<br />

Una tavola su cui si o<strong>per</strong>a una ricerca binaria deve essere memorizzata come struttura sequenziale<br />

con elementi di lunghezza costante, dato che l’accesso deve avvenire tramite calcolo<br />

dell’indirizzo.<br />

171

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!