Today I wrapped up my paper's section on backtracking, and am still pleased with the organization of Skiena's book. My learning process is shaped by the structure of Skiena's book, but it's assisted by the more in-depth coverage of my "Algorithms" tome.
I moved into the realm of graph traversals. My paper is really starting to take shape both on paper and in my mind. I'm seeking to provide basically a toolbox for problem solvers. That includes coded algorithms, example solutions and analysis, and strategies for knowing when to use which algorithm. So far, the easiest part is coding up the algorithms, and it's not that difficult to apply them to certain problems when I know which algorithm to use. It's more challenging to determine when to use each algorithm (and, honestly, that's the line of thinking which will probably be worth the most out of my month's studies).
Also, while dealing with graphs, I realized the importance of vocabulary. Many graph algorithms are specific for a specific kind of graph, and there are many varieties (e.g. connected, simple, weighted, unconnected). It's important to be able to identify which kind of graph will model the situation described in a particular problem. If you can identify the type of graph which models the situation, implementing it with the right tools is a piece of cake.
No comments:
Post a Comment