Il corso di Algoritmi e strutture dati ha introduce gli studenti all'analisi e alla progettazione di algoritmi ottimali e strutture dati efficienti. Vengono in particolare studiate diverse tecniche di progettazione di algoritmi come la tecnica del divide et impera, la programmazione dinamica e la programmazione greedy; vengono altresì presentate le strutture dati fondamentali quali liste, code, pile, alberi binari di ricerca, tabelle hash, heap, grafi (con relativi algoritmi fondamentali).
• Introduzione; Notazione asintotica; Tecnica del divide et impera e metodi di risoluzione delle ricorrenze.
• Algoritmi di ordinamento e loro analisi: algoritmi quadratici; merge sort; quick sort; limite inferiore ad algoritmi basati su confronti; counting sort e radix sort.
• Implementazione in Java: ricorsione e algoritmi di ordinamento
• Strutture dati elementari e operazioni: liste, pile, alberi radicati.
• Strutture dati: alberi binari di ricerca, tabelle Hash, Heap; heapsort.
• Implementazione in Java: strutture dati e relativi algoritmi
• Tecniche di progettazione algoritmica: programmazione dinamica e algoritmi greedy
• Grafi: rappresentazione; visite; minimo albero ricoprente (Kruskal e Prim); cammini minimi (Dijkstra e Floyd-Warshall)
• Implementazione in Java: grafi e relativi algoritmi
SEDE DI CHIETI
Via dei Vestini,31
Centralino 0871.3551
SEDE DI PESCARA
Viale Pindaro,42
Centralino 085.45371
email: info@unich.it
PEC: ateneo@pec.unich.it
Partita IVA 01335970693