Il precedente testo adottato era questo:
Alan Bertossi e Alberto Montresor.
Città Studi Edizioni, 2014.
|
Dal 2025/26 il libro non sarà più stampato. Sto lavorando a una nuova versione, più allineata alle slide attuali e allo stile che sto adottando per il corso. Inoltre, il libro passerà da vettori indicizzati a partire da 1 (1‑based, Pascal-style) a vettori indicizzati a partire da 0 (0‑based, lo standard del mondo informatico dagli anni 2000 in poi… boomer!).
La nuova versione sarà pubblicata sotto licenza Creative Commons Attribution-NonCommercial 4.0. Quando sarà in condizioni migliori, rilascerò anche i sorgenti LaTeX.
Questa transizione non è semplice, quindi inizierò pubblicando i singoli capitoli nello stato attuale e aggiornandoli progressivamente. L’obiettivo è completare il lavoro entro maggio 2026, per poi passare a rilasci annuali. In ogni caso, il libro è già leggibile, se si riesce a sopportare l’impaginazione approssimativa e le figure poco curate.
Legenda per lo status:
- 🙈 Ho solo riformattato il libro vecchio, quindi è 1‑based.
- 😥 Ho sistemato il codice rendendolo 0‑based e formattando bene il tutto, ma non sono ancora soddisfatto.
- ✅ Il testo è aggiornato, non sono soddisfatto degli esercizi ma ci penserò in un secondo momento
- 🥂 Il testo è aggiornato, compresi gli esercizi (se ci sono).
Il fatto che sia in status 🥂 non significa che il testo sia definitivo. Nel riscrivere alcune parti, potrei aver introdotto nuovi errori. Se pensate di aver trovato un errore, scrivetemi una mail con [ASDBOOK] nel soggetto. Se anche non fosse un errore, significa che è scritto male, quindi non siate timidi. Con calma affronterò tutte le email. Verrete citati nei ringraziamenti.
# | Titolo del capitolo | Status | |
1 | Introduzione | [PDF] | 🥂 |
2 | Analisi di algoritmi | [PDF] | 🙈 |
3 | Tipi di dato e strutture di dati | [PDF] | 🙈 |
4 | Strutture di dati elementari | [PDF] | 🙈 |
5 | Alberi | [PDF] | 🙈 |
6 | Alberi bilanciati di ricerca | [PDF] | 🙈 |
7 | Tabelle hash | [PDF] | ✅ |
8 | Insiemi e dizionari | [PDF] | 🙈 |
9 | Grafi | [PDF] | 🙈 |
10 | Code con priorità e insiemi disgiunti | [PDF] | 🙈 |
11 | Strutture di dati e progettazione di algoritmi | [PDF] | 🙈 |
12 | Divide et impera | [PDF] | 🙈 |
13 | Programmazione dinamica | [PDF] | 🙈 |
14 | Tecnica greedy | [PDF] | 🙈 |
15 | Ricerca locale | [PDF] | 🙈 |
16 | Backtrack | [PDF] | 🙈 |
17 | Algoritmi probabilistici | [PDF] | 🙈 |
18 | Teoria dell’NP-completezza | [PDF] | 🙈 |
19 | Tecniche risolutive per problemi intrattabili | [PDF] | 🙈 |
20 | Conclusioni | [PDF] | 🙈 |
Appunti edizione precedente
Il libro stampato presenta alcuni errori, che sono riassunti nei file seguenti:
Grazie a tutti gli studenti che hanno contribuito a scovarli (fra cui Michele Fietta, Lorenzo Massimo Gramola, Carlo Marinangeli, Paolo Pandini, Manuele Panozzo, Stefano Roncador, Alessio Zamboni, Michele Dorigatti, Ermanno Moser, Giovambattista Damiani, Andrei Catalin Coman, Andrea Zampieri, Sara Kalo; un ringraziamento particolare a Fabio Tiecher e Davide Bertolini).
Argomenti aggiuntivi
Nel passaggio dalla seconda alla terza edizione del libro, alcuni argomenti sono stati rimossi. Li riportiamo qui:
Approfondimenti
- Cormen, Leiserson, Rivest, Stein. Introduction to Algorithms. The MIT Press, 3rd edition (2010)
Compendio completo di tecniche algoritimiche e strutture dati. - Kleinberg, Tardos. Algorithm Design. Addison-Wesley (2006)
Questo è un libro molto interessante, con enfasi sulle tecniche di progettazione degli algoritmi, e una minore attenzione alle strutture dati. - Skiena. The algorithm design manual (2nd ed.). Springer-Verlag, 2008.
Libro molto interessante, contenente diversi aneddoti e spiegazioni sull’importanza degli algoritmi. - Skiena, Revilla. Programming Challanges. Springer-Verlag (2003)
Questo libro contiene un insieme di problemi presi dai programming contest della ACM, alcuni dei quali con soluzione.