Welcome to the Big O Analysis Tool (BOAT). BOAT lets you compare simple
math functions to see their big O properties.
Features
The purpose of BOAT is to allow you to visualize and understand the
properties of the growth of functions. If you are solving homework problems
from CLRS or DPV, this page should be useful for you.
Example Expressions
- N * lg(N) is N lg N
- N**2 is N squared
- factorial(N) is N factorial
The analyzer uses javascript math notation, so remember to separate
multipled terms with a *. You also need to use ** for powers, because ^
means xor in javascript.
In competitive programming, the guideline is that an algorithm can do up
to ~3e8 operations and get accepted by the online judge. The following
table is from
CP3 and gives an idea of
what complexity is necessary for different input sizes to achieve All
Correct (AC) without hitting Time Length Exceeded (TLE).
Reading the first line: if N=11, an algorithm of factorial complexity
or N^6 (or better) is acceptable. If N=1e4, an algorithm using N^2
complexity is acceptable. At 1e5, N lg N or N sqrt N complexity
is required and at 1e8, only O(N) algorithms will get accepted.
NOTE: The table is written for compiled code, if you are using an
interpreted language, you can add about 5 - 10x performance overhead to
get an idea of how long an algorithm will take to run.