Big O Notation: A mathematical notation used to describe the efficiency or complexity of an algorithm in terms of its input size.
Time Complexity: The measure of how the running time of an algorithm increases with the size of the input.
Space Complexity: The measure of how much additional memory or storage an algorithm requires as the input size grows.