Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have a hard time learning algorithms (Particularly graphing algorithms).

Do you know of any good free resources that make some of the more harrowing algorithm concepts such NP-Complete, Traveling salesman, and other algorithms, A* heuristics, particularly graphing algorithms, simpler to learn?

share|improve this question
add comment

4 Answers

up vote 2 down vote accepted

What books, websites, etc. have you looked at?

The Algorithm Design Manual is known for being a clear explanation of all these topics. I recommend it highly.

share|improve this answer
    
I have heard that book recommended before. I was hoping for more videos and tutorials. I thought about browsing through Youtube, but I suspect that youtube will have more fluff than substance. –  DmainEvent Sep 20 '12 at 19:49
    
The second edition is right next to me, totally worth the money. It indeed explains all these topics well. And it's still useful when you get all that, because of the second part which lists problems, algorithms that solve these problems or special cases of them, great implementations and research papers. –  delnan Sep 20 '12 at 19:52
    
Say I were prepping for an important interview... Would you recommend I attempt to implement algorithms in Java, or should I just focus on reading up on the problems. I know personally when I read something, even if I learn something, it tends to melt right out of my head unfortunately. –  DmainEvent Sep 20 '12 at 21:49
    
Implement them. By implementing them, they do stick in your head (for at least some time). –  Martijn Verburg Sep 21 '12 at 10:27
add comment

If you were using JGraph, you should give a try to JGraphT which is designed for algorithms. One of its features is visualization using the JGraph library.

It's still developing, but in pretty stable state. I analyzed the complexity of JGrapT algorithms some time ago. Some of them aren't the quickest, but if you're going to implement them on your own and need to display your graph, then it might be the best choice.

I really liked using its api, when I quickly had to write an app that was working on graph and displaying it later.

Reference, here is a Hello World! example.

share|improve this answer
add comment

http://www.nrbook.com/a/bookcpdf.php is really, really good. I've seen their books in C++, and FORTRAN, which are also very good. It has got a mixture of theory and practical code examples.

share|improve this answer
add comment

You might find Mastering Algorithms with Perl helpful. The beauty of this book is that it is very hands on. There is code that goes with most of the sections. If you learn better by doing, then this might be a good book for you.

share|improve this answer
    
Anything in Java? –  DmainEvent Sep 20 '12 at 19:48
1  
I would not use Java to learn algorithms. I would think that would be like learning to draw with oil based paint. Perl is good because the coding is less likely to get in the way. Remember you aren't learning to program, you are trying to understand Algorithms. –  gam3 Sep 20 '12 at 22:41
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.