Mi è stato affidato il compito di costruire una biblioteca di libri sugli algoritmi per la nostra piccola azienda (circa 15 persone). Il budget è superiore a 5.000, ma sicuramente inferiore a 10.000, quindi posso acquistare un discreto numero di libri. Tutte le persone qui hanno almeno una laurea in CS o un campo strettamente correlato, quindi mentre avrò alcuni libri di testo di base come Cormen, sono più interessato a buoni libri su argomenti avanzati. (Prenderò i 4 volumi di Knuth, a proposito.)
Alcuni elenchi di argomenti sarebbero:
Algoritmi di ordinamento
Algoritmi grafici
Algoritmi di stringa
Algoritmi randomizzati
Algoritmi distribuiti
Algoritmi combinatori
eccetera.
In sostanza sto cercando buoni consigli su libri su argomenti importanti all'interno di CS relativi ad algoritmi e strutture di dati. Soprattutto roba che va al di là di ciò che è in genere coperto in classi di algoritmo e struttura dei dati come parte di una laurea in una buona scuola. So che la domanda è piuttosto confusa, poiché sto cercando materiale genericamente utile. Il software che sviluppiamo è principalmente roba a livello di sistema che gestisce grandi quantità di dati.
L'ideale sarebbe anche trovare qualcosa che possa coprire strutture e algoritmi di dati interessanti abbastanza recenti, di cui la maggior parte delle persone potrebbe non aver sentito parlare.
EDIT: Ecco alcuni libri preliminari che penso dovrei ottenere:
Introduzione agli algoritmi di Cormen et al.
Algorithm Design di Kleinberg, Tardos
The Art of Computer Programming Vol 1-4 di Knuth
Algorithms di approssimazione di Vazirani
The Design of Approximation Algorithms di Williamson, Shmoys
Algoritmi randomizzati di Motwani, Raghavan
Introduzione alla teoria del calcolo di Sipser
Complessità computazionale di Arora, Barak
Computer e intrattabilità di Garey e Johnson
Ottimizzazione combinatoria di Schrijver
Alcuni altri libri che i miei colleghi volevano che trattassero di tecniche e algoritmi per la progettazione del linguaggio, compilatori e metodi formali sono:
Tipi e linguaggi di programmazione di Pierce
Principi di Model Checking di Baier, Katoen
Compilatori: principi, tecniche e strumenti di Aho, Lam, Sethi, Ullman
Manuale di progettazione del compilatore: ottimizzazioni e generazione di codice macchina, seconda edizione di Srikant, Shankar
Manuale di Garbage Collection: The Art of Automatic Memory Management di Jones, Hosking, Moss