I am in three Computer Science/Math classes that are all dealing with algorithms, Big-O, that jazz. After listening, taking notes, and doing some of my own online searching, I'm pretty damn sure I understand the concept and reason behind Big-O, and what it means when one function is Big-O of the other. The problem I am having right now is when I am asked to PROVE that $f(x) = O(g(x))$. I know the basic order of which kinds of functions are a lower order than others, but its questions that have functions with a lot of combinations of different functions that stump me. I don't know where to start analyzing, and from hearing classmates and professors talk it definitely seems like there's some general rule-of-thumb/algorithm that helps with pretty much every Big-O problem.
Can y'all share some insight into how you go about thinking through these problems?
Give a big-O estimate for this function. For the function $g$ in your estimate $f(x)$ is $O(g(x))$, use a simple function $g$ of smallest order.
$(n^3 + n^2\log n)(\log n + 1) + (17\log n + 19)(n^3 +2)$
Or this one: Find the least integer $n$ such that $f(x)$ is $O(x^n)$ for each of these functions.
a) $f(x) = 2x^3 + x^2\log x$
b) $f(x) = (x^3 + 5\log x)/(x^4 + 1)$