$Remarks:$

The complexity of Dijkstra's algorithm depends on how **min-priority queue** is implemented.

Number of EXTRACT_MIN operations = **V**, and number of DECREASE_KEY operations = **E**

**1.** Using Binary Heap:

$$O((V + E)logv), EXTRACT-MIN = O(logv), DECREASE-KEY=O(logv)$$

**2.** Fibonacci heap:

$$O((Vlogv + E)): EXTRACT-MIN = O(logv), DECREASE-KEY=O(1)$$

**3. **Binomial Heap:

$$O((V + E)logv), EXTRACT-MIN = O(logv), DECREASE-KEY=O(logv)$$

**4.** Array:

$$O(V^2 + E): EXTRACT-MIN = O(V), DECREASE-KEY=O(1)$$