Docenti: Prof. Erik Demaine, Dr. Jason Ku, Prof. Justin Solomon
Video: YouTube – Lecture 2
🎯 Obiettivi della lezione
- Capire il ruolo delle strutture dati nel design di algoritmi efficienti.
- Comprendere il funzionamento degli array dinamici.
- Introdurre il concetto di amortized analysis per valutare costi medi nel tempo.
⚙️ Contenuti principali
1. Strutture dati e memoria
Una struttura dati definisce come organizzare e accedere ai dati in modo efficiente.
Esempi fondamentali:
- Array
- Liste concatenate
- Stack e code
- Tabelle hash
- Alberi e grafi
Ogni struttura implica un compromesso tra:
- Tempo di accesso
- Tempo di inserimento/rimozione