Time stays same no matter how many elements
eg: Array[x] / array.push
(1) Constant complexity O(1)
Time increases as number of elements increases
eg: for loop
(3) Linear complexity O(n)
Time increases exponentially as elements increase
eg: nested for loops
(5) Quadratic complexity O(n^2)
Time complexity is reduced in some way by limiting or dividing the number of elements accessed
(eg: for loop with divide by 2 / binary search)
(2) Logarithmic complexity O(log n)
Time complexity increases like an exponential loop but is limited by dividing the number of elements
(eg: divide and conquer on an n^2 algorithm )
(4) nLogN O(n log n)