mag 13 2008

Algoritmi e Strutture Dati 1

Pubblicato da Fabio Andrea Petrini il 13 maggio 2008 alle ore 4:16
Sezione: Senza categoria

Docente: Maria Cristina Pinotti
Ore di teoria: 48
Ore di pratica: 0
CFU 6
Sito ufficiale: http://www.dipmat.unipg.it/~pinotti/Algoritmi.html

Prerequisiti

Nozioni basilari dei corsi di Analisi Matematica, Matematica Discreta e Programmazione I (anche senza aver necessariamente sostenuto l’esame).

Programma del corso

Algoritmi: correttezza, terminazione, complessità (caso pessimo, caso medio). Analisi di InsertionSort. Metodi di progetto: Divide et Impera. Analisi di Ricerca binaria e MergeSort. Fondamenti di Matematica. Principio di Induzione (prova di terminazione e correttezza di programmi). Ordine di grandezza di funzioni: Ο, Ω, θ, ο, ω. Base, tetto, esponenziali, Logaritmi. Sommatorie e serie.

Soluzioni di ricorrenze, verifiche di soluzioni. Il Teorema dell’esperto.

Generalità sugli alberi. Alberi binari (definizione ricorsiva). Rappresentazione con arrays. Heap: procedura di mantenimento dalla proprietà di heap e calcolo della sua complessità. Costruzione di un heap: metodo dal basso e dall’alto, calcolo delle complessità HeapSort e sua complessità. Code di priorità. Inserimento e cancellazione su un heap, complessità. Heaps d-ary.

Ordinamento: Procedure di partizione (3 versioni). Analisi della complessità di QuickSort (caso peggiore, caso migliore, complessità media). Limiti teorici della complessità di ordinamento per confronto. CountingSort. Radix Sort.

Mediana: Complessità di calcolo del minimo e del massimo in una sequenza. La mediana e la selezione dell’i-esimo elemento: algoritmo di complessità media O(n); algoritmo di complessità O(n) nel caso peggiore.

Tabelle hash: Memorizzazione su tabelle con indirizzamento diretto. Collisioni. Tabelle hash. Criteri per funzioni hash. Gestione delle collisioni. Scansione esterna (liste di trabocco). Scansione interna (lineare, quadratica, doppio hashing, pseudocasuale). Cancellazione di dati. Complessità della scansione esterna ed interna senza agglomerati primari.

Alberi di ricerca: Generalità sugli alberi ordinati, realizzazione. Alberi binari di ricerca. Ricerca di chiavi, minimo, massimo, successore e predecessore. Inserimento e cancellazione. Complessità delle operazioni di ricerca e problema del bilanciamento. Alberi binari di ricerca bilanciati. Alberi bilanciati per realizzare insiemi disgiunti (union, find).

Generalità e rappresentazione in memoria. Schema generale di visita di grafi. Alberi di copertura e componenti connesse.Visita in ampiezza (BFS), visita in profondità (DFS) e loro proprietà (classificazione degli archi). Grafi aciclici e ordine topologico (algoritmo con la cancellazione di sorgenti, algoritmo con i tempi di fine-visita DFS). Componenti fortemente connesse (algoritmo con i tempi di fine-visita DFS).

Supplement

Algoritmi e analisi della loro complessita’ in tempo e spazio. Algoritmi di ordinamento: InsertionSort,Mergesort, Quicksort.
Ordinamento in tempo lineare. Counting Sort. Radix Sort. I-esima statistica d’oridine. Hashing. Alberi binari di ricerca. Strutture dati avanzate. Algoritmi elementari per i grafi.

Metodi didattici

Lezioni frontali in aula

Modalità di valutazione

Per accedere all’esame orale, lo studente deve superare una prova scritta di 2 ore, senza possibilita’ di consultare i testi. Una volta superata la prova scritta lo studente dovrà – a pena dell’annullamento -sostenere l’orale nello stesso appello.

Testi consigliati

T. H. CORMEN, C. E. LEISERSON, R. L. RIVEST, C. STEIN Introduzione agli algoritmi e strutture dati (Seconda edizione), McGraw-Hill, 2005, ISBN: 88-386-6251-7.

Nessun tag per questo post.

Post correlati:



 
Per i blogger: questo è il link per effettuare il trackback!

Disclaimer: Il materiale sarà controllato con la massima accuratezza possibile, tuttavia dipmat.it non sostituisce i testi ufficiali adottati dai docenti e le lezioni tenute durante l'anno accademico.
Il responsabile del sito Fabio Andrea Petrini e gli autori dei documenti declinano ogni responsabilità per eventuali informazioni errate o non aggiornate.

One Response to “Algoritmi e Strutture Dati 1”

Lascia un commento:

© 2010 Il Portale degli Informatici di Perugia | Post (RSS) e Commenti (RSS)
Sito realizzato da Fabio Andrea Petrini - Powered By Wordpress