Limitations of Complexity Flashcards
What is Big-O notation?
A notation that expresses computing complexity as the term in a function that increases most rapidly, relative to the size of a problem.
What is the Big-O notation used to describe?
The upper bound of a algorithm’s complexity. The longest time it would take to execute/complete an algorithm.
What is the order of magnitude for Big-O notation?
- O(1)
- O(log2(N))
- O(N)
- O(N log2 N)
- O(N^2)
- O(N^C)
- O(C^N)
- O(n!)
What are polynomial time algorithms?
Algorithms whose order of magnitude can be expressed as polynomial in the size of the problem.
What is Polynomial time complexity (P)?
Problems that can be solved with a deterministic processor in polynomial time?
What is nondeterministic polynomial (NP)?
Problems that can be solved with a nondeterministic processor in polynomial time but can be verified by a deterministic processor in polynomial time.
What are NP-hard problems?
Problems which are at least as hard to solve as NP problems, but where the solution may not be verifiable in polynomial time?
What are Np-Complete problems?
The hardest problems to solve in the NP class. Proving that any of the NP-Complete problems can be solved in polynomial time would mean that all NP problems could be.