Algorithms: Determining Asymptotic Notation from a given execution time
Assuming that $f(n)$ and $g(n)$ are asymptotically positive (as it is usually the case) you can use the following sufficient condition to determine the asymptotic relation of $f(n)$ and $g(n)$.

If $\lim_{n \to \infty} \frac{f(n)}{g(n)}$ exists and is $c \in \mathbb{R_0^+} \cup \{+\infty\}$, then:


If $c&lt; +\infty$ then $f(n) = O(g(n))$ (and $g(n) = \Omega(f(n))$). In particular:


If $0 &lt; c &lt; +\infty$ then $f(n) = \Theta(g(n))$ (and $g(n) = \Theta(f(n))$).
If $c=0$ then $f(n) = o(g(n))$ (and $g(n) = \omega(f(n))$).

If $c &gt; 0$ then $f(n) = \Omega(n))$ (and $g(n) = O(f(n))$). In particular:


If $0 &lt; c &lt; +\infty$ then $f(n) = \Theta(g(n))$ (and $g(n) = \Theta(f(n))$).
If $c = +\infty$ then $f(n) = \omega(g(n))$ (and $g(n) = o(f(n))$).



Moreover, in computing the limit, you can replace  $f(n)$ with a function $h(n)$ such that $h(n) \sim f(n)$ (see, e.g., this page on Wikipedia). The same holds for $g(n)$.
For polynomials this amounts to taking the monomial of highest degree. Moreover, since scaling $c$ by a (positive) constant does not change the asymptotic relation between $f(n)$ and $g(n)$, you can also drop any multiplicative constant (which will always be positive since $f(n)$ and $g(n)$ are asymptotically positive).

For example, instead of comparing $f(n) = 3n^2 + 2n +50$ with $g(n) = 5n^5 + 4n^3 - 2^{10}$, you can compare $x^2$ with $x^5$ instead. This immediately shows that $c$ exists and is $0$, therefore $f(n) = O(g(n))$ 
 and, in particular, $f(n) = o(g(n))$.

While the above rules will probably work for the vast majority of the functions you will encounter, they can't always be used. Consider, for example, $f(n) = 2 + \sin(n)$ and $g(n) = 1$. Here $f(n) = \Theta(g(n))$ but $\lim_{n \to \infty} \frac{f(n)}{g(n)}$ does not exist.