Algoritmi e Strutture Dati
Docente: Michele Bugliesi
Semestre: 1o
Crediti: 6
Settore scientifico-disciplinare: INF/01 (Informatica)
Ore di lezioni/esercitazioni: 40
Ore per attività integrative: 8
Modalità di esame: Prova scritta
Esame coordinato con:
Esami propedeutici: Programmazione, Esercitazioni di Programmazione, Strutture Discrete
Obiettivi: Acquisire gli elementi di base per la progettazione e l'analisi degli algoritmi. Viene evidenziato
il criterio dell'efficienza nella progettazione degli algoritmi e sottolineata la relazione tra la
rappresentazione dei dati e gli algoritmi per la loro elaborazione. Alla fine del corso lo studente deve
conoscere le principali strutture dati elementari e saper operare con esse.
Programma:
Introduzione all'analisi degli algoritmi (4 ore). Algoritmi. Ordine di complessità di un algoritmo.
Strutture di dati elementari (8 ore). Specifica e realizzazione di strutture dati. Liste. Pile e Code. Alberi.
Insiemi.
Ordinamento e selezione (8 ore). Mergesort. Quicksort. Ordinamento in tempo lineare. Mediano e
selezione.
Dizionari (4 ore). Realizzazione con vettore ordinato. Realizzazione con tabelle hash.
La struttura dati heap (4 ore). Costruzione di uno heap. Heapsort. Code di priorita'.
Alberi di ricerca (6 ore). Alberi binari di ricerca. Alberi Bilanciati.
Algoritmi elementari sui grafi (6 ore). Rappresentazione (liste/matrici di adiacenza). Visite.
Libri di testo:
Cormen T. H., Leiserson C. E., Rivest R. L. ``Introduction to Algorithms''. The Mit Press, 1990.