The big O notation puts an upper bound on the rate of growth of a function: f = O(g) if, for all values of input greater than an arbitrary point in the domain and a constant scaling factor C, f(x) < Cg(x).

If all you know about an algorithm is that it is O(n log(n)), you would need a time of one input to know the maximum time of another input. The running times of unrelated algorithms tells you nothing.

Consider the following functions:

f( 2 ) takes 2 seconds

f( 4 ) takes 8 seconds

f( 8 ) takes 24 seconds

f'( 2 ) takes 2 minutes

f'( 4 ) takes 8 minutes

f'( 8 ) takes 24 minutes

f''( 2 ) takes 2 hours

f''( 4 ) takes 8 hours

f''( 8 ) takes 24 hours

f'''( 2 ) takes 2 days

f'''( 4 ) takes 8 days

f'''( 8 ) takes 24 days

f,f',f'',f''' are all O( n log(n) ), and can take seconds, minutes, hours, or days to complete for the same input.

]]>Otherwise a very readable paper!

]]>Are you aware of any connections in this direction?

Wonderful graphics and exposition :)

]]>https://github.com/ToonTalk/ToonTalk

http://www.toontalk.com/English/papers.htm ]]>