Why Study Algorithms?
Notes
- If we do it right, this semester we will study
- Sorting and Searching Again
- Some applications of sorting and searching
- Greedy Algorithms - a method of algorithm Design
- Graph Algorithms
- Basic Graph Algorithms
- Minimal Spanning Tree Algorithms
- Shortest Path Algorithms
- Distributed Algorithms
- Plus many others.
- Why?
- Why do you read books and articles in English classes?
- To understand what others have done.
- To use these techniques, so we don't reinvent the wheel.
- To apply these techniques in other areas or novel applications.
- But also to use the techniques/ideas when we encounter something different
- We will discuss a bit of how to design new algorithms.
- Greedy Techniques
- Divide and Conquer
- Algorithm reuse.
- But also, it gives us motivation to study algorithm performance
- This is a huge theoretical topic in CS.
- We will learn about some problems that are genuinely "hard"
- And some that we are not sure of.
- So we know that finding an ideal solution might be very hard, or even impossible.
- So we don't waste time not solving a problem.
- And we learn new ways to "win" at the programming contest.
- And at the coding interview
- As a CS major, you are EXPECTED to know about these algorithms.