4 ms·
>My personal favourite is mixing up Dynamic Programming (from an Algorithms textbook) with recurrence solving in a discrete math book (which is what DP is actua
by cube13 13y ago
>My personal favourite is mixing up Dynamic Programming (from an Algorithms textbook) with recurrence solving in a discrete math book (which is what DP is actually about) and mixing all that with a more advanced chapter of discrete math -- generating functions.
This is what makes a "simple" primer on algorithms difficult. In order to prove running time or correctness, you need to have a decent command of basically everything else in that list before you start.
It's relatively simple to understand how Dijkstra's algorithm works by iterating through the steps, but it's much more difficult to prove that it works for a generalized graph. Or prove it's running time.
Algorithm theory is basically the end point of an undergrad CS education. It's the point where you take all the theory you've learned up until that point, and turn it into something that can really be applied to computing.
- gizmo686 13y agoWhy does proving algorithms involve understanding basically every else. The almost every proof (of correctness) I've seen has been simpler and easier to understand than most of the proof I saw or was asked to do in high school math. Proofs for the running time tend to be trivial (in terms of getting a reasonable big-O, big-Omega. Getting big-Theta is often more difficult, but still tends to be relatively simple).