Coding Grandmaster ยท project 5 of 46 ยท premium, free for now
The growth race
For each size in the list print one line like n=10 linear=10 nlogn=33 quadratic=100, where nlogn is int(n * math.log2(n)).
Learn
What matters most is how the step count grows with n. A linear algorithm takes about n steps, a quadratic one about n ร n, and a clever one such as binary search or merge-style sorting sits in between at about n ร log2(n). Doubling n doubles the first, quadruples the second, and does little more than double the third.
Your task
For each size in the list print one line like n=10 linear=10 nlogn=33 quadratic=100, where nlogn is int(n * math.log2(n)).
Stretch challenge
At which n does quadratic first exceed 100 times linear?
Press Run to see what your program prints.
More in this module
Keep going in Coding Grandmaster
How fast is it? Counting steps
Write pair_checks(n): two nested loops that count every pair (i, j) with i smaller than j among n items, and return the count. The program prints pair_checks(10).
Start โ2Searching one by one
Write find(items, target) that returns a pair (index, comparisons). If the target is missing, the index is -1 and the comparisons equal the length of the list.
Start โ3Halving the search
Write binary_search(items, target) for a sorted list. Return (index, steps) where steps counts how many middle items you looked at, or (-1, steps) if it is missing.
Start โ4Two ways to sort
Write bubble_sort(items) and selection_sort(items). Each returns (sorted_list, swaps) and must not change the list it was given. The program prints both results for the list.
Start โ6Remembering answers
Write fib_naive(n) returning (value, calls) and fib_memo(n, memo) returning the value while counting calls in memo["calls"]. Print the results for 20.
Start โPractise the idea
๐ฏ Play Plinko Probability Lab
Drop balls through a peg board and see how gravity and chance shape the results.
FAQ
The growth race: common questions
I am stuck. What can I do?
Press Hint for a nudge, read the message next to each goal, and compare your code with the lesson text. If you still need it, Show answer reveals a model solution. Try to type it yourself rather than copy it.
Does my work get saved?
Your ticks and XP are saved in this browser, and in your account if you log in. The code you type is not stored on a server.
Start a conversation
Enjoying coding? Meet a teacher.
Tell us the learner's age, country and what they would like to build, and we will suggest a class. A parent or guardian can make the enquiry.
- Tell us the learnerโs age or grade and goals
- Weโll suggest a suitable class or learning path
- Weโll confirm format, timing and fees with a parent or guardian
Play it, don't just read it
Write some code right now
Free games that need no sign-up. Pick one and play for five minutes.
Pick a game
- Code BuilderThe lines of a Python program are mixed up. Tap them into the rightโฆPlay
- Predict the OutputRead a short Python program and choose what it prints. Then watch it runโฆPlay
- Bug HunterA Python program prints the wrong answer. Find the one line with theโฆPlay
- Code JungleWrite real Python to guide Miko the monkey to every banana. 24 levels:โฆPlay