Algorithms in C++Robert Sedgewick
This is a very old copy of the book. Robert (Bob) Sedgewick has been writing this book in various languages over the years. Some of them are rather thick! The one copy I have is an old, out-of-print hardcover edition, Algorithms in C++.
How old is the book? The book came out when C++ has just come into being. The majority of computer programmer were still using plain old C. The programs in the book are written in C. Only the data structure is written in C++ format. The year was 1992.
I like to think of it as the layman's guide to Donald Knuth's The Art of Computer Programming books. Every time I read Donald's book, my mind went blank. The farthest I can read was 5 pages. That was on bubble sort algorithm, a subject in which I know intimately. Obviously, the professor has his head in academia world, because the rest of us do not read or write like that! Thankfully, Robert Sedgewick distilled the essence of it, and put forth the content the rest of us can decipher.
I have read a few more algorithm books, but I think this one stands a mention. The rest pales in comparison. If you have this book, and supplement it with special purpose procedure/math formulas book, then you should be prepared for most eventualities.
You do need to know C, but I assume those of you who knows C, Objective C, C++, C#, and other C variants will have no trouble understanding it.
Unlike, say, a special-purpose, non-existent, artificial assembly language. Really. I think it's easier to teach the readers the whole C language, than reading a single program written in assembly language.