To compare the efficiency of various algorithms, we need a way to describe how their resource usage grows as the size of the input grows. In this chapter, we will introduce Big-O Notation, a mathematical notation used to classify algorithms according to how their run time or space requirements grow as the input size grows.