Do you have any recommendations for a starting point for any of these algorithms. My first shot would probably just be trawling Wikipedia, but if there's a better place to look I'm all ears.
Once you're at an intermediate level in any language and experienced with programming concepts in general, then it does make sense to develop good coding style (by reading books and blogs about the topic) and adopt idiomatic practices of the community (if they're sane). But simply reading a large codebase to become a better programmer is drinking from a firehose. It might make sense for an experienced programmer, but usually you'll do that because you're working on the codebase.
Do you have any recommendations for a starting point for any of these algorithms. My first shot would probably just be trawling Wikipedia, but if there's a better place to look I'm all ears.