Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The "searching" volume of The Art of computer programming seems a bit outdated, though, in this age of search engines.


How so?


I read Knuth's Volume 3, Searching and Sorting back in the 70's when I was a new grad student, it's great.

I now own the second and latest edition of this volume, but it is now over 20 years old. I recommend all of Knuth's publications.

Is Search and Sorting dated? Well, it is quite old. The fold out chart of tape merging patterns for different tape based sorting algorithms doesn't really come up very often anymore. It's been over 40 years since I've had to write programs that worked with mainframe tape drives.

Although AVL trees are covered well, there is no coverage of red-black trees or splay-trees.

Hashing is covered extensively, but there is no discussion of more modern hash table methods (like Cuckoo Hashing or Robin Hood Hashing or the power of choice results).

Furthermore, the basic hardware model used by Knuth in volume 3 assumes uniform costs for memory access. Cache sensitive algorithms aren't considered in volume 3 but are very important today.

Even quicksort, which I learned by studying Volume 3, now has what I consider to be a more modern treatment in Sedgewick and Wayne's Algorithms, 4th Ed.


Well, it obviously doesn't describe PageRank, and all the subsequent techniques that are being used by search engines, including techniques from natural language processing.

Retrieving data is a lot different now than what it was back in the 70s and 80s.


It sounds like you're referring to a specific subset of problems, namely ranking and retrieving web documents.

The "searching" section of TAoCP is about search algorithms [0]. Some of these (finding by keys, hashing, etc.) are part of what makes a search engine.

Some parts of what make up a search engine aren't related to searching at all, though. PageRank, for example, is about ranking.

[0] - https://en.wikipedia.org/wiki/Search_algorithm




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: