Recensione del libro "Introduzione agli algoritmi e strutture dati"
Booksite: http://bit.ly/Nst4uE
Autori: Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein
Traduzione: Livio Colussi, Professore Associato di Informatica presso la Facoltà di Scienze MM.FF.NN. dell’Università degli Studi di Padova
ISBN: 9788838665158
Lingua: italiano
Fogliazione: 1030 pagine
Periodo di pubblicazione: Giugno 2010
Prezzo: 61,00 €
Gli studenti dei corsi universitari di informatica e di ingegneria informatica, ma anche i professionisti che si dedicano allo sviluppo di software, devono spesso confrontarsi con algoritmi e con le strutture dati. In particolare, lo studio di questa materia richiede di trovare gli algoritmi più efficienti per risolvere un dato problema e di utilizzare le strutture dati più adatte.
Testi universitari che trattano questo tema ce ne sono molti, ma pensiamo che il libro “Introduzione agli algoritmi e strutture dati” che presentiamo in questa recensione sia una delle scelte migliori che si possa fare.
Prima di tutto, il libro è molto voluminoso: in 1030 pagine si possono trovare tutti gli algoritmi fondamentali, con spiegazioni dettagliate, sia dal punto di vista teorico che pratico. Ogni capitolo contiene anche numerosi esercizi e problemi da risolvere (alcuni dei quali sono stati risolti dagli autori e pubblicati sul loro sito Internet).
Per quanto riguarda i programmi realizzati, si è scelto di non prediligere alcun linguaggio di programmazione specifico ma di scrivere il codice con una pseudo-codifica che permetta di essere sufficientemente comprensibile, ma anche di rendere abbastanza facile la traduzione del codice in uno qualsiasi dei molti linguaggi di programmazione esistenti.
Il contenuto del libro è organizzato nei capitoli seguenti:
Parte I – Fondamenti
Capitolo 1 – Ruolo degli algoritmi nell’elaborazione dei dati
Capitolo 2 – Per incominciare
Capitolo 3 – Crescita delle funzioni
Capitolo 4 – Divide et impera
Capitolo 5 – Analisi probabilistica e algoritmi randomizzati
Parte II – Ordinamento e statistiche d’ordine
Capitolo 6 – Heapsort
Capitolo 7 – Quicksort
Capitolo 8 – Ordinamento in tempo lineare
Capitolo 9 – Mediane e statistiche d’ordine
Parte III – Strutture dati
Capitolo 10 – Strutture dati elementari
Capitolo 11 – Hashing
Capitolo 12 – Alberi binari di ricerca
Capitolo 13 – Alberi rosso-neri
Capitolo 14 – Aumentare le strutture dati
Parte IV – Tecniche avanzate di progettazione e di analisi
Capitolo 15 – Programmazione dinamica
Capitolo 16 – Algoritmi golosi
Capitolo 17 – Analisi ammortizzata
Parte V – Strutture dati avanzate
Capitolo 18 – B-alberi
Capitolo 19 – Heap di Fibonacci
Capitolo 20 – Alberi di van Emde Boas
Capitolo 21 – Strutture dati per insiemi disgiunti
Parte VI – Algoritmi per grafi
Capitolo 22 – Algoritmi elementari per grafi
Capitolo 23 – Alberi di connessione minimi
Capitolo 24 – Cammini minimi da sorgente unica
Capitolo 25 – Cammini minimi fra tutte le coppie
Capitolo 26 – Flusso massimo
Parte VII – Argomenti scelti
Capitolo 27 – Algoritmi multighread
Capitolo 28 – Operazioni con le matrici
Capitolo 29 – Programmazione lineare
Capitolo 30 – Polinomi e FFT
Capitolo 31 – Algoritmi di teoria dei numeri
Capitolo 32 – String matching
Capitolo 33 – Geometria computazionale
Capitolo 34 – NP-Completezza
Capitolo 35 – Algoritmi di approssimazione
Parte VIII – Appendici: prerequisiti matematici
Appendice A – Sommatorie
Appendice B – Insiemi e altro
Appendice C – Calcolo combinatorio e delle probabilità
Appendice D – Matrici
Ovviamente il testo è piuttosto impegnativo e richiede parecchio studio, anche se il titolo potrebbe far pensare a un testo semplice (“Introduzione…”). E’ comunque un libro che non può mancare nella libreria di uno studente di informatica, né in quella di uno sviluppatore di software, perché fornisce tutte le informazioni utili per utilizzare i migliori algoritmi attualmente noti.
Fortemente consigliato.
Pubblicato il 18 luglio 2012 su Novità. Aggiungi ai preferiti il collegamento . Lascia un commento.
Lascia un commento