Algoritmi e Strutture Dati
Anno accademico 2005/06
Prof.ssa Marcella Anselmo (matricole dispari-dispari)
Programma del corso
1. Introduzione
o Introduzione agli algoritmi. Insertionsort. [cap. 1 e 2]
o Notazioni per l'analisi asintotica degli algoritmi [cap. 3]
2. Divide et impera
o Mergesort [par. 2.3]
o Relazioni di ricorrenza [par. 4.1, 4.2, 4.3]
3. Algoritmi per l'ordinamento
o Heapsort e Code a Priorità [cap. 6]
o Quicksort, Partition ed analisi di Quicksort nel caso pessimo e nel caso medio [cap.
7 escluso par. 7.4.2]
o Calcolo della mediana e statistiche d’ordine [cap. 9]
o Limite inferiore sul numero di confronti per algoritmi di ordinamento. Countingsort
[par. 8.1, 8.2]
4. Strutture dati elementari
o Alberi binari di ricerca [par. 12.1, 12.2, 12.3]
o Alberi Red-Black [cap.13 escluso par. 13.4]
o Strutture dati per insiemi disgiunti [par. 21.1, 21.2, 21.3]
o Tavole hash [par.11.1, 11.2, 11.3.1, 11.3.2]
5. Algoritmi greedy
o Activity selection [16.1]
o Zaino frazionario [16.2]
o Algoritmo di Huffman [16.3]
6. Programmazione dinamica
o Moltiplicazione di una sequenza di matrici [par. 15.2 e 15.3]
o La più lunga sottosequenza comune [15.4]
7. Teoria della NP-completezza
o Le classi P e NP [par. 34.1, 34.2 (senza dimostrazioni), 34.3]
o La classe dei linguaggi NP-completi [par. 34.4 (senza dimostrazioni dei Lemmi 34.5,
34.6 e del Teorema 34.7)]
o Alcuni problemi NP-completi [par. 34.6 escluso 34.6.3]
Testi di riferimento

[CLRS] T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, Introduzione agli Algoritmi,
seconda edizione, McGraw Hill.