Learn Asymptotic Complexity, Running Times Analysis (O, Ω, θ) and Complexity Classes (P and NP)
This course is about algorithms running time analysis and complexity theory. In order to be able to classify algorithms we have to define limiting behaviors for functions describing the given algorithm.
We will understand running times such as O(N*logN), O(N), O(logN) and O(1) – as well as exponential and factorial running time complexities.
Thats why big O, big Ω and big θ notations came to be. We are going to talk about the theory behind complexity theory as well as we are going to see some concrete examples.
Then we will consider complexity classes including P (polynomial) as well as NP (non-deterministic polynomial), NP-complete and NP-hard complexity classes.
Section 1 – Algorithms Analysis
-
how to measure the running time of algorithms
-
running time analysis with big O (ordo), big Ω (omega) and big θ (theta) notations
-
complexity classes
-
polynomial (P) and non-deterministic polynomial (NP) algorithms
Section 2 – Master Theorem and Recursion
-
how to measure the running time of recursive approaches (recursion)
-
understanding binary search (logarithmic search)
-
understanding the master theorem
These concepts are fundamental if we want to have a good grasp on data structures and graph algorithms – so these topics are definitely worth considering. Hope you will like it! Thanks for joining my course, let’s get started!
Hope you will like it! Thanks for joining my course, let’s get started!