If timing and counting both work, why aren't they enough, and which input and which case should an efficiency claim be about?
Short drills on what this video just taught. Write the code, run the checks, and reveal the answer only if you are stuck.
costs holds one function's operation counts at inputs 10, 100, 1,000 and 10,000, each ten times the one before. Small inputs can hide the growth, so let the largest inputs decide. Define behaviour(costs) returning exactly one of the strings 'constant', 'linear', 'quadratic' or 'logarithmic'.