The best approach to this is to consider how many steps the algorithm will take.
If you have n elements, you know that the outer loop is going to run at least n times. So it has to be at least O(n).
How many times does the inner loop have to run for each i? Does it increase, stay the same or decrease as i increases?
It's clear that the number of steps in the inner loop will decrease as i increases, and more importantly, it decreases non-linearly. So you know it isn't as bad as O(n^2).
So it's somewhere between O(n) and O(n^2).... a bit more analysis on how the steps decrease in the inner loop should get you there. EDIT: ... Although it looks like people already gave it away :)