Fibonacci Heaps - 臺灣大學計算機中心ccf.ee.ntu.edu.tw/~yen/courses/ds19/chapter-5c.pdf ·...

Post on 09-Jul-2020

5 views 0 download

Transcript of Fibonacci Heaps - 臺灣大學計算機中心ccf.ee.ntu.edu.tw/~yen/courses/ds19/chapter-5c.pdf ·...

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