Time complexity of Dijkstra's algorithm for sparse graph I'm not sure I understand the answer to this question:


  Question 9. 
  
  What is the running time of Dijkstra's algorithm in a graph that is sufficently sparse - in particular, $E=o(V^2/\log V)$, where $V$ is the number of vertices and $E$ the number of edges. Assume that we are implementing the min-priority queue with a binary min-heap. Choose the anwser the that gives the tightest correct bound.
  
  
  $O(V^2)$
  $O(V^2+E)$
  $O(E^2)$
  $O((V+E)\log V)$
  $O(V\log V)$
  
  
  Answer: 4 $O((V+E)\log V)$


As I understand it, the algorithm runs in $O((E+V) \log(V))$ with binary heap. Thus when, $E = V^2/\log(V)$, shouldn't the overall time complexity be $O(V^2)$?
Discrete Lizard's answer explains various aspects of the question. 

Here is an explicit calculation when $E=o(V^2/\log V)$.

$$\lim_{V\to\infty}\frac{(E+V)\log V}{V^2}=\lim_{V\to\infty}\frac{E}{\dfrac{V^2}{\log V}}+\lim_{V\to\infty}\frac{V\log V}{V^2}=0+0=0$$

That means $O((E+V)\log V)\subsetneq O(V^2)$. So $O((E+V)\log V)$ is a tighter bound than $O(V^2)$ when $E=o(V^2/\log V)$.