View Full Version : Looking for a book on algorithm design...

MorphingDragon

Sep 28, 2010, 01:34 AM

I'm looking for a book (Well it doesn't actually have to be a book, so something) on algorithm design and optimisation (theoretical or practical). The library has a TON of them, but I'm looking for one or two good ones.

I only got a B+ for one of my recent practical assessments and the tutor marking it said my algorithm was not efficient enough to warrant an A grade.

ianray

Sep 28, 2010, 06:16 AM

Donald Knuth's The Art of Computer Programming is highly recommended. http://en.wikipedia.org/wiki/The_Art_of_Computer_Programming

MorphingDragon

Sep 28, 2010, 07:45 AM

Donald Knuth's The Art of Computer Programming is highly recommended. http://en.wikipedia.org/wiki/The_Art_of_Computer_Programming

Oh wow :eek:, that looks like something I should read while doing a Masters.

Is there anything you could recommend that isn't quite so long?

AlmostThere

Sep 28, 2010, 07:48 AM

I would probably go for something like this:

http://www.amazon.co.uk/Introduction-Algorithms-T-Cormen/dp/0262533057/

I *think* this is the course book for one of the MIT open courseware series and covers lots of theory.

I would also recommend

http://www.amazon.co.uk/Algorithm-Design-Manual-Steven-Skiena/dp/1848000693

for a run down of a whole host of algorithms, but more from the perspective of finding the right algorithm for a 'real world' problem at hand

This is also a good summary book:

http://www.amazon.co.uk/Algorithms-Nutshell-Dektop-Reference-OReilly/dp/059651624X

Does what it says on the tin

There are also some lower level books (I don't have them, so am hesitant to recommend), I think Sedgwick "Algorithms in C"

Really depends on what you want or mean by "algortihm design", though

Cromulent

Sep 28, 2010, 08:02 AM

I would also recommend

http://www.amazon.co.uk/Algorithm-Design-Manual-Steven-Skiena/dp/1848000693

for a run down of a whole host of algorithms, but more from the perspective of finding the right algorithm for a 'real world' problem at hand

Yes, this is a good book. I'm still hoping I'll be able to pick up another book like it but finances are bit tight for these book prices at the moment :).

chown33

Sep 28, 2010, 10:30 AM

There are also some lower level books (I don't have them, so am hesitant to recommend), I think Sedgwick "Algorithms in C"

I have the Sedgewick book (note spelling of author's name). I highly recommend it. Like I recently did here:

http://forums.macrumors.com/showthread.php?p=11123482&highlight=#post11123482

It's a book that's been around for a while, so check for it in a library, and evaluate it before deciding to purchase.

MorphingDragon

Sep 28, 2010, 04:22 PM

I have the Sedgewick book (note spelling of author's name). I highly recommend it. Like I recently did here:

http://forums.macrumors.com/showthread.php?p=11123482&highlight=#post11123482

It's a book that's been around for a while, so check for it in a library, and evaluate it before deciding to purchase.

Didn't Sedwick design the quick-sort algorithm?

I booked that MIT Introduction to Algorithms for about a month.

gnasher729

Sep 28, 2010, 05:19 PM

Didn't Sedwick design the quick-sort algorithm?

Charles A. R. Hoare.

http://en.wikipedia.org/wiki/C._A._R._Hoare

chown33

Sep 28, 2010, 05:56 PM

Didn't Sedwick design the quick-sort algorithm?

http://en.wikipedia.org/wiki/Robert_Sedgewick_(computer_scientist)

Oh, and I liked this book some years ago:

http://www.amazon.com/Design-Analysis-Computer-Algorithms/dp/0201000296/ref=pd_bxgy_b_text_b

Pity I lent the book and never got it back. It was on my "buy again" list, then web searching got better, so I haven't bought it again. Worth checking out at the library, though.

Also, I own the Knuth "trilogy", but I find that I only really use them if another simpler description can't be found. Useful as definitive references, but not so much in everyday use. I wouldn't buy them again if I lived near a good engineering library.

For everyday use I usually search Wikipedia first. It's not always comprehensive, but it's pretty good, and many of the articles have good descriptions and diagrams. And practically every article worth reading has See Also and External Links for times when excruciating details are needed. For example, look up radix sort, and you get a summary (stable for LSD, O(kn)), the algorithm (with variants: LSD, MSD), as well as links to other kinds of sort algorithms.

Mernak

Sep 28, 2010, 06:14 PM

Yeah Introduction to Algorithms by CLRS (http://www.amazon.co.uk/Introduction-Algorithms-T-Cormen/dp/0262533057/) is the book used by at least 2 algorithm classes at MIT (6.006 - Introduction to Algorithms and 6.046 Design and Analysis of Algorithms and maybe some higher level ones too, but not sure on that), it's an amazing book, although some of the heuristics aren't mentioned as much (it's more focused on runtime analysis, not so much the constants). I highly recommend it.

Algorithms in a Nutshell (http://www.amazon.co.uk/Algorithms-Nutshell-Dektop-Reference-OReilly/dp/059651624X) seems to be a bit more focused on the programming aspects (although I haven't read it much, I own the CLRS book though), which might be good for you too.

mrbash

Sep 28, 2010, 11:25 PM

I used "Introduction to Algorithms " by Cormen for my undergrad course. It had a good balance of theory and practice. I believe it is considered some what of a "standard" for algorithms.