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.