Big O - rs-hash/Learning GitHub Wiki
#Big O Cheat Sheet:
-Big Os-
O(1) Constant
no loops
O(log N) Logarithmic
usually searching algorithms have log n if they are sorted (Binary Search)
O(n) Linear
for loops, while loops through n items
O(n log(n)) Log Linear
usually sorting operations
O(n^2) Quadratic
every element in a collection needs to be compared to ever other element. Two nested loops
O(2^n) Exponential
recursive algorithms that solves a problem of size N
O(n!) Factorial
you are adding a loop for every element
Iterating through half a collection is still O(n)
Two separate collections: O(a * b)
-What can cause time in a function?-
- Operations (+, -, *, /)
- Comparisons (<, >, ==)
- Looping (for, while)
- Outside Function call (function())
-Rule Book-
- Rule 1: Always worst Case
- Rule 2: Remove Constants
- Rule 3: Different inputs should have different variables. O(a+b). A and B arrays nested would be
- O(a*b)
-
- for steps in order
-
- for nested steps
- Rule 4: Drop Non-dominant terms
-What causes Space complexity?-
- Variables
- Data Structures
- Function Call
- Allocations