Programma preliminare del corso di
Algoritmi e Strutture Dati con Laboratorio (Modulo I)
Anno accademico 2009/2010
 Introduzione al corso:
o Concetto di algoritmo e di struttura dati
o Concetti di correttezza ed efficienza
o Cosa vuol dire analizzare un algoritmo
 Introduzione informale agli algoritmi:
o Il problema del calcolo dell’n-esimo numero di Fibonacci
o Un algoritmo numerico
o Un algoritmo ricorsivo
o Un algoritmo iterativo
o Un altro algoritmo iterativo: risparmiare sulla memoria
o Primi cenni sulla notazione asintotica
o Un algoritmo basato sulle potenze ricorsive
 Modelli di Calcolo e metodologie di analisi
o Modelli di calcolo
o Notazione asintotica O, , , o, .
o Delimitazioni inferiori e superiori
o Metodi di analisi
 Caso peggiore, migliore, medio
 Analisi della ricerca sequenziale
 Un algoritmo più veloce: la ricerca binaria
o Analisi di algoritmi ricorsivi
o Metodo dell’iterazione, della sostituzione, teorema fondamentale delle
ricorrenze e altre tecniche utili
 Strutture dati elementari
o Tecniche per rappresentare collezioni di oggetti
o Pile e code
o Alberi
 Rappresentazioni indicizzate
 Rappresentazioni collegate
 Visite di alberi
 Ordinamento:
o Ordinare in tempo quadratico
o Heap sort
o Merge sort
o Quick sort
o Integer sort e Bucket sort
o Radix sort
o Una delimitazione inferiore al numero di confronti
 Alberi di ricerca:
o Alberi binari di ricerca
o Alberi AVL
 Stringhe:
o Distanza fra due stringhe: un algoritmo di programmazione dinamica