views:

984

answers:

6

Duplicate of: How to get started on algorithms


After overloading my classes one fateful semester in my college days, I ended up dropping my algorithms course and never taking it again.

I'd like to finally fix this by doing some self study, but I'm wondering how best to approach it.

I've got a few algorithm texts, notably the CLRS book and Skiena's book, and links to various online sources.

Should I read both books cover to cover? Read one? Just check out some online lectures? How would you do it?

Edit: I had trouble finding a question like this, hence the post. Sorry for the dupe. Good info in that other question too.

A: 

I'm currently running Skiena cover to cover...it's very good so far...

Jason Punyon
This weirds me out a bit...I had Steven Skiena fairly recently as my prof (though I had him for Programming Challenges, rather than Algorithms), and had no idea he was so well regarded. But I did think he was remarkably good at what he was doing!
Beska
@Beska - Steve Yegge recommends TADM in his article about boning up for interviews. He says that the book is mostly about design with only the theory needed to understand it. Seems perfectly practical so far, which is what I was looking for.
Jason Punyon
+1  A: 

MIT's Introduction to Algorithms - Lectures Online

Chris Ballance
A: 

The short answer is - it depends ;) If you're interested in broad overview of algorithms I suggest you pick a university textbook on the subject of algorithms and data structures and read it from cover to cover. If there a specific field of intetest such as graphs or image processing - you can find a lot of infomation on the web.

Dror Helper
A: 

Topcoder.com competitions are excellent for this.

+2  A: 

Algorithms are mostly about intuition, and to get one you have to practice writing them.

Choose your favorite language, better an easy to use one (Python for example). And start by implementing the examples in the book, you will be surprised how much better you will understand things by implementing them. Try to modify the examples and try to add some new functionality to them. After you get familiar with the particular algorithm/data structure, go and do some exercises!

That’s what I did, and after a lot of frustration I finally managed to learn it all pretty well.

I studied algorithms with the CLRS and found it to be great. Also search the internet for some interactive demonstrations of algorithms, there are plenty of them.

Good luck!

Untrots
+1  A: 

I would also recommend going to Project Euler as well. Especially in the forum, there is lots of algorithm discussions, and the problems encourage this pattern:

  1. solve it
  2. reflect on it
  3. solve it right.
Gregg Lind