Plain English Explanation of Big O Notation
cforcoding.com
cforcoding.com
"Big O notation seeks to describe the relative complexity of an algorithm [...]" Relative to what? To the moon and the stars? Big O is a notation to describe the growth rate of functions.
Therefore, you can also use it to describe the memory usage of an algorithm. Even if the author of the article thinks otherwise.
And so on and so forth.
Seriously, I understand the wish to explain this thing clear and simple. But what is so hard about a clear and concise description using maths and some plots?
Or, in John McCarthy's words:"He who refuses to do arithmetic is doomed to talk nonsense.".
Hint:
O
XX
OOOO
XXXXXXXX
OOOOOOOOOOOOOOOO
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
...
You can always arrange all but the biggest array alongside the biggest array, with one space left over. So you can always amortize the cost of an array copy over the number of add operations that preceded it. OOOOOOOOOOOOOOOOXXXXXXXXOOOOXXO
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXAn example of alternative uses for big-O is the description of the "order of error" introduced by taking the Taylor-series truncation of a math function. This is useful in evaluating the accuracy of numerical techniques.