12 ms·
I read these the first time so far back that the extensive section (with the fold out pages) covering sorting on external tape drives was of interest to me. Ove
by todd8 4y ago
I read these the first time so far back that the extensive section (with the fold out pages) covering sorting on external tape drives was of interest to me. Over the intervening years I've gone back to these books many times to check on my understanding of subjects. (I've also bought and used all of his other books too: TeX, Concrete Mathematics, and other collected works.)
I worked as an OS Architect at IBM and then Chief Scientist at a very successful startup. Subjects like analysis of algorithms, memory management, optimizing disk access, search tries, random number generation, and many more found in TAOCP have all been useful in my professional life. I've had to give many technical presentations and to present my designs to committees of experts and CS professors. Knuth wasn't the only source of my preparation for this kind of work, but he was a very important source.
Are there better books on algorithms? Maybe. I also like the popular Introduction to Algorithms [1], Sedgwick's Algorithms [2], and Skeina's Algorithm Design Manual [3]. All of these are good and all of them sit on the shelf right next to Knuth's books. Depending on the subject, any one of these might have the best treatment. BTW, Sedgwick was a Ph.D. student of Knuth.
To keep up with the literature I also recommend a membership in the ACM with access to their digital library.
[1] Thomas H. Cormen , Charles E. Leiserson, et al. (2022), Introduction to algorithms, MIT Press.
[2] Robert Sedgewick and Kevin Wayne, (2011), Algorithms, Addison-Wesley.
[3] Steven S. Skiena, (1997), The algorithm design manual, Springer.
- gjm11 4y agoI think #1 and #3 of these make a particularly good combination; they have very different and quite complementary merits. CLRS is rigorous and precise and analytical and theoretical. Skiena is handwavy and pragmatic and not always quite correct. CLRS is written for people who will be implementing complicated algorithms. Skiena is written for people who will be using other people's implementations. CLRS is deep. Skiena is shallow. CLRS is heavy going. Skiena is pretty easy reading. (But ignore everything Skiena says about generating random numbers.)
- sn9 4y agoJust to throw in some praise for Sedgewick's books: the diagrams are so gorgeous that even Edward Tufte cites them for their beauty and utility. https://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0001OR https://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=... Ctrl-f "Sedgewick".