fibonacci heaps - 臺灣大學計算機中心ccf.ee.ntu.edu.tw/~yen/courses/ds19/chapter-5c.pdf ·...
TRANSCRIPT
Fibonacci Heaps
(Fibonacci Heaps) Data Structures and Programming Spring 2019 1 / 37
Fibonacci Heaps
Fibonacci heap history. Fredman and Tarjan (1986)I Ingenious data structure and analysis.I Original motivation: O(m + nlogn) shortest path algorithm.
F also led to faster algorithms for MST, weighted bipartite matchingI Still ahead of its time.
Fibonacci heap intuition.I Similar to binomial heaps, but less structured.I Decrease-key and union run in O(1) time.I ”Lazy” unions.
(Fibonacci Heaps) Data Structures and Programming Spring 2019 2 / 37
Fibonacci Heaps: Structure
Fibonacci heap.Set of min-heap ordered trees.
(Fibonacci Heaps) Data Structures and Programming Spring 2019 3 / 37
Fibonacci Heaps: Implementation
(Fibonacci Heaps) Data Structures and Programming Spring 2019 4 / 37
Fibonacci Heaps: Potential Function
(Fibonacci Heaps) Data Structures and Programming Spring 2019 5 / 37
Fibonacci Heaps: Insert
(Fibonacci Heaps) Data Structures and Programming Spring 2019 6 / 37
Fibonacci Heaps: Insert
(Fibonacci Heaps) Data Structures and Programming Spring 2019 7 / 37
Fibonacci Heaps: Insert
(Fibonacci Heaps) Data Structures and Programming Spring 2019 8 / 37
Binomial Heap: Union
(Fibonacci Heaps) Data Structures and Programming Spring 2019 9 / 37
Fibonacci Heaps: Union
(Fibonacci Heaps) Data Structures and Programming Spring 2019 10 / 37
Fibonacci Heaps: Delete Min
(Fibonacci Heaps) Data Structures and Programming Spring 2019 11 / 37
Fibonacci Heaps: Delete Min
(Fibonacci Heaps) Data Structures and Programming Spring 2019 12 / 37
Fibonacci Heaps: Delete Min
(Fibonacci Heaps) Data Structures and Programming Spring 2019 13 / 37
Fibonacci Heaps: Delete Min
(Fibonacci Heaps) Data Structures and Programming Spring 2019 14 / 37
Fibonacci Heaps: Delete Min
(Fibonacci Heaps) Data Structures and Programming Spring 2019 15 / 37
Fibonacci Heaps: Delete Min
(Fibonacci Heaps) Data Structures and Programming Spring 2019 16 / 37
Fibonacci Heaps: Delete Min
(Fibonacci Heaps) Data Structures and Programming Spring 2019 17 / 37
Fibonacci Heaps: Delete Min
(Fibonacci Heaps) Data Structures and Programming Spring 2019 18 / 37
Fibonacci Heaps: Delete Min
(Fibonacci Heaps) Data Structures and Programming Spring 2019 19 / 37
Fibonacci Heaps: Delete Min
(Fibonacci Heaps) Data Structures and Programming Spring 2019 20 / 37
Fibonacci Heaps: Delete Min
(Fibonacci Heaps) Data Structures and Programming Spring 2019 21 / 37
Fibonacci Heaps: Delete Min
(Fibonacci Heaps) Data Structures and Programming Spring 2019 22 / 37
Fibonacci Heaps: Delete Min
(Fibonacci Heaps) Data Structures and Programming Spring 2019 23 / 37
Fibonacci Heaps: Delete Min
(Fibonacci Heaps) Data Structures and Programming Spring 2019 24 / 37
Fibonacci Heaps: Delete Min
(Fibonacci Heaps) Data Structures and Programming Spring 2019 25 / 37
Fibonacci Heaps: Delete Min Analysis
(Fibonacci Heaps) Data Structures and Programming Spring 2019 26 / 37
Fibonacci Heaps: Delete Min Analysis
(Fibonacci Heaps) Data Structures and Programming Spring 2019 27 / 37
Fibonacci Heaps: Decrease Key
(Fibonacci Heaps) Data Structures and Programming Spring 2019 28 / 37
Fibonacci Heaps: Decrease Key
(Fibonacci Heaps) Data Structures and Programming Spring 2019 29 / 37
Fibonacci Heaps: Decrease Key
(Fibonacci Heaps) Data Structures and Programming Spring 2019 30 / 37
Fibonacci Heaps: Decrease Key
(Fibonacci Heaps) Data Structures and Programming Spring 2019 31 / 37
Fibonacci Heaps: Decrease Key
(Fibonacci Heaps) Data Structures and Programming Spring 2019 32 / 37
Fibonacci Heaps: Decrease Key
(Fibonacci Heaps) Data Structures and Programming Spring 2019 33 / 37
Fibonacci Heaps: Decrease Key
(Fibonacci Heaps) Data Structures and Programming Spring 2019 34 / 37
Fibonacci Heaps: Decrease Key
(Fibonacci Heaps) Data Structures and Programming Spring 2019 35 / 37
Fibonacci Heaps: Decrease Key Analysis
(Fibonacci Heaps) Data Structures and Programming Spring 2019 36 / 37
Fibonacci Heaps: Delete
(Fibonacci Heaps) Data Structures and Programming Spring 2019 37 / 37