CS 577 - Intro to Algorithms
Overview
CS 577 was a great course about the algorithmic part of computer science. I learned topics such as Big Oh Notation, Greedy algos, Divide & Conquer algos, Dynamic Programming, Network Flow and Intractibility. The class focused on proving algorithm correctness and runtimes to ensure that the most efficient algorithms are used. I learned how to prove the different algorithms mentioned and the general outline of each.
Topics
These algos always take the best possible option at the current time without considering future consequences. Usually good for maximization or minimization problems.
DC algos are special for breaking the problem into smaller parts and solving those, then combining the problem back together. Examples are mergesort and quicksort.
DP utilizes memoization to remember previous solutions. This way the program does not have to repeat solving for something many times and instead can call upon a memoized value to solve.
Sometimes it is easier to visualize problems through a graph. With NF you can find the max flow, min cut and do reductions.
Deals with the problems that we don't know if they can be solved in polynomial time or not. Proving something is NP-Complete requires proving that it is in NP and that it is NP-Hard.
- © Untitled
- Design: HTML5 UP