Algorithms in a Nutshell

Author: George Heineman, Gary Pollice, Stanley Selkow
Publisher:O'Reilly,2008
Pages: 326
ISBN: 978-0596516246
Aimed at: Professional developers
Rating: 5
Pros: A readable and informative book you will want to refer to for years to come
Cons: 
Reviewed by: Mike James

Algorithm books aren’t entirely new, but this one is a little different. A standard algorithm book simply presents common or classic algorithms to do a range of things in the language of choice. Some of them, like Donald Knuth’s classic, “The Art of Computer Programming”, indulge in detailed mathematical analysis of the efficiency and properties of the algorithms. This book, however, isn’t at all academic and it’s a very good and easy read.

Banner

The first chapter presents a case study describing how, despite the best intentions of the programmers concerned, selecting an algorithm for a particular job is difficult. The account is interesting and well told, a sort of “who dun-it” and it doesn’t matter that it's obvious that it was the algorithm that did it. Following this there is an introduction to the ideas involved in evaluating and understanding algorithms. Even if you know about “big O” notation it makes a good refresher course.

From here we launch into a consideration of algorithms by type with searching and sorting being the obvious place to start. Each algorithm is placed into its context and an explanation of how it works is given. Example code is mostly in C or C++ but it doesn’t really matter because if you know any block structured language you will be able to follow the examples. What is important to emphasis is that while the book presents the properties of the algorithms without trying to oversimplify you are not subjected to long derivations of the execution times or space requirements. The whole presentation is informal but informative at just the right level for a working programmer. Moving on from the essential skills of searching and sorting the following chapters are more varied and less universally useful: Graph algorithms (e.g. shortest path), Path finding in AI (e.g. Minimax, Alphabeta pruning), Network flow (e.g. Max flow, Linear Programming) and Computational Geometry (Convex Hull, Nearest Neighbour). Clearly which algorithms are of interest depends on what you are working on but the selection covers a useful range and you can expect to encounter them all in a reasonable programming career.

The final part of the book deals with slightly more exotic topics such as what to do when you can’t get an algorithm to suit – including go parallel and try randomised algorithms. The Epilog ends the book with a collection of “principes” that you should apply to your interaction with algorithms. Take to heart the last one – “Writing Algorithms Is Hard – Testing Algorithms is Harder”. Despite is not covering much of the academic analysis needed for a computer science course it would also make a really good basis for such a course or background reading.

This book is a “keeper” - make room for it on your bookshelf as it’s essential reading.

<ASIN:0072970545>

<ASIN:0321358287>

Banner


Interactive Project Management: Pixels, People and Process

Author: Nancy Lyons & Meghan Wilker
Publisher: New Riders
Pages: 192
ISBN: 978-0321815156
Audience: Anyone concerned with managing a web-related project
Rating: 4
Reviewer: Kay Ewbank

This look at developing interactive applications such as websites, apps and kiosks, is from a project manager’s v [ ... ]



Pro ASP.NET 4 in C# 2010 (4e)

Author: Matthew MacDonald and Adam Freeman
Publisher: Apress
Pages: 1616
ISBN: 978-1430225294
Aimed at: Intermediate level
Rating: 4
Pros: Encyclopedic
Cons: Lacks coverage of MVC
Reviewed by: Ian Elliott

This is a huge book which makes it difficult to read -so it had better be worth the back-breaking, arm [ ... ]


More Reviews

Last Updated ( Saturday, 11 September 2010 )
 
 

   
RSS feed of book reviews only
I Programmer Book Reviews
RSS feed of all content
I Programmer Book Reviews
Copyright © 2014 i-programmer.info. All Rights Reserved.
Joomla! is Free Software released under the GNU/GPL License.