This document discusses asymptotic notation, which is used to express the time and space complexity of algorithms. There are three main types of asymptotic notation: Big Oh (O) notation provides an upper bound for the growth rate of a function; Big Omega (Ω) notation provides a lower bound; and Big Theta (Θ) notation provides both an upper and lower bound, describing the exact growth rate of a function asymptotically. Asymptotic notation is used because the exact time and space requirements of an algorithm cannot be determined and can only be expressed as a function grows relative to the input size.