Prove Dijkstra's O(E + VlogV) complexity

  • #1
SadPaul
2
0
Homework Statement:
Prove that Dijkstra's time complexity O(E + VlogV) with Fibonacci priority queue is the best by reducing it to a sorting problem
Relevant Equations:
-
My effort:
I think that the sorting problem in question is Heap Sort which has an O(logV) complexity, but how can I operate with that information so I can solve this? Can you help me by giving me the outline of an idea?
 

Answers and Replies

  • #2
fresh_42
Mentor
Insights Author
2022 Award
17,813
19,031
I would reason this way:

You have to visit each edge and each vertex at least once, for otherwise you might lose the minimum. This gets you ##O(|E|\cdot T_1 +|V|\cdot T_2)## where ##T_i## is the time you use at each edge: ##T_1=T(\text{decrease key})## and the time at each vertex: ##T_2=T(\text{extract minimum})##.

To extract minimum we use Fibonacci Heaps which run in ##O(\log n)##. So all you have to do is to show that ##T_1=O(1)## and ##T_2 > O(\log |V|)##. So you have to show the lower boundary for the sort operation via Fibonacci heap (sufficiency) and that any sort algorithm needs at least ##O(\log n)## (necessity).
 

Suggested for: Prove Dijkstra's O(E + VlogV) complexity

Replies
1
Views
704
  • Last Post
Replies
2
Views
893
Replies
4
Views
533
Replies
3
Views
525
  • Last Post
Replies
1
Views
275
Replies
2
Views
547
  • Last Post
Replies
1
Views
573
Replies
11
Views
504
  • Last Post
Replies
2
Views
581
Top