Corso di Algoritmi e Strutture Dati

Titolare del corso e responsabile del Modulo A: Prof. Lorenzo Donatiello.
Il corso verrà tenuto in presenza.

Orario delle lezioni

Mercoledì 09:00—12.00
Venerdì 10:00—13:00

Scopo del corso

Il corso vuole presentare i concetti di base relativi alla progettazione degli algoritmi e all'analisi della loro complessità computazionale.

Programma del corso


Strutture dati elementari: liste, pile, code.
Algoritmi di ordinamento e ricerca.
Strutture dati non lineari: alberi e grafi.
Tecniche per l'analisi di algoritmi.
Strutture dati avanzate: alberi di ricerca, tabelle hash, heap.
Tecniche Algoritmiche: divide et impera, ricerca locale, metodo greedy, programmazione dinamica, backtrack, ricerca locale.
Macchine di Turing e Calcolabilità

Testi di riferimento e consultazione

[1] Alan A. Bertossi, A. Montresor, Algoritmi e Strutture di Dati, CittàStudi 2010, ISBN: 9788825173567
[2]Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano, Algoritmi e strutture dati 2/ed, McGraw-Hill, 2008, ISBN: 978 88 386 64687
[3] Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein, Introduzione agli algoritmi e strutture dati 2/ed, McGraw-Hill, 2005, ISBN: 9788838662515

Lucidi delle Lezioni

Introduzione al corso
Introduzione alle strutture dati
Strutture dati elementari: introduzione
Strutture Dati elementari: esercitazione
Algoritmi di ordinamento: prima parte
Algoritmi di ordinamento: seconda parte
Tecniche di analisi degli algoritmi
Tecniche di analisi degli algoritmi: esempi
Strutture dati: Alberi
Esercitazione su Alberi
Alberi Binari di Ricerca
Esercitazione su Alberi Binari
B-tree
Insiemi
Code con Priorità
Tabelle Hash
Grafi
Analisi Ammortizzata
Esercizi sulla complessità
Esercitazione su alberi
Esercizi di Algoritmi e Strutture Dati
Esercitazione.