Landau Notation: Why is O(f) (not) the set all g < c*f?
There are at least three fundamental misunderstandings, here.


$O(\cdot)$ only makes statements about large enough inputs to the function. It's not that there exists some&nbsp;$c$ such that $g\leq c\,f$ for all&nbsp;$n$, but just for all large enough&nbsp;$n$.
The argument of $O(\cdot)$ is a (mathematical) function. If $A$&nbsp;is an algorithm, it makes no sense to write $O(A)$: it doesn't type-check. In particular, for an algorithm&nbsp;$A$, we don't talk about "the order of&nbsp;$A$". Rather, $O(\cdot)$ is a way of comparing mathematical functions: $O(f)$&nbsp;is the set of all mathematical functions&nbsp;$g$ such that $g(n)\leq c\,f(n)$ for some&nbsp;$c$ and all large enough&nbsp;$n$.
$O(f)$ is the set of all mathematical functions&nbsp;$g$ such that $g(n)\leq c\,f(n)$ for some&nbsp;$c$ and all large enough&nbsp;$n$. So it's simply not true that, in your example, $g_1$ would be the only function you'd describe as being $O(n^2+10)$.


$O(\cdot)$ is defined that way because it's useful to do so: it's a way of comparing functions and it doesn't care what you use those functions for. ($O(\cdot)$ doesn't care about complexity theory, just as the meter doesn't care about Mount Everest.) So, when we say that the running time of an algorithm is, say, $O(n^2)$, we just mean that, for large enough inputs, it's no worse than some constant times&nbsp;$n^2$. Often, we say it that way because we don't know anything more precise.  In the same vein, I'm pretty sure that you have less than a million dollars in the bank but It would be hard for me to find out how much less.

In cases where we do know something more precise, we might use $\Theta(\cdot)$, or we might use separate $O(\cdot)$ and $\Omega(\cdot)$ bounds.  For example, we might say that the running time of some algorithm is $\Theta(n\log n)$, meaning that there are constants $c_1$ and&nbsp;$c_2$ such that, for all large enough&nbsp;$n$, the running time is between $c_1n\log n$ and $c_2n\log n$.  For some other algorithm, we might only be able to prove that its running time is $O(n^3)$ and $\Omega(n^2)$, meaning that there are constants $c_1$ and $c_2$ such that, for large enough&nbsp;$n$, the running time is between $c_2n^2$ and $c_1n^3$.