Wednesday, July 23, 2008

"Algorithms for Programmers" (A work in progress) - by Jörg Arndt

This is something of a "book review" for Jörg Arndt's "Algorithms for Programmers" which I have not read straight through but continually dig through and find interesting gems.

There are clearly two types of algorithms already showing up in this collection: those with a systems / optimization bent and those with a mathematical bent. Since I appreciate both optimization and mathematics for the sake of mathematics, I find no problem with this but very often books on Algorithms emphasize the absolutely most boring end of the mathematics of algorithms: complexity analysis. One almost never finds interesting or cool problems solved with equally interesting data-structures or algorithms. Instead Quicksort is presented and we get a chance to show that something is of O(n-logn) complexity. Lame / Boring / *Snore*. To Quicksort's credit it is one of the more mathematically beautiful sorting algorithms but once you've seen it, you've seen it, and can move one.


Jörg's collection of algorithms "for programmers" has a very "systems" or "bit twiddling" feel to it and provides algorithms for many day-to-day real programming problems that come up. Little (if any) time is spent on complexity analysis, in particular proving that an algorithm lives in a given class. Instead good pseudo-code is provided, often several solutions to the same problem, with a bit of explanation as to why one would use a certain variant over the others presented. Even cooler is there are three full chapters on mathematical algorithms including Orthogonal Transforms, Fast Arithmetic, and Algorithms for Finite Fields!

Check it out and be sure to thank
Jörg.

No comments:

Powered By Blogger