For extra practice on identifying and optimizing time complexity, take a look through these practice problems.
- complexityAnalysis.js contains a number of functions, with the goal of understanding and identifying their time complexity.
- complexityApplications.js asks you to write a few functions, while attempting to keep their algorithmic complexity as low as possible.
Note: Yes, there are many different time complexities (just checkout the list on wikipedia!), but the main ones to start with are constant, logarithmic, linear, polynomial, and exponential.