Table of contents
1.
Introduction
2.
Three major types of Heap 
2.1.
Binary Heap
2.2.
Binomial Heap
2.3.
Fibonacci Heap
3.
The time complexity of the operation of Fibonacci Heap
3.1.
Some Time complexity of Fibonacci heap
3.2.
Reason for the Implementation of the Fibonacci heap
4.
Some interesting facts about Fibonacci Heap operation
5.
Frequently Asked Questions
5.1.
What is Heap?
5.2.
Heap is Based on which Data Structures?
5.3.
What is a Fibonacci Heap?
5.4.
What are the major types of Heap?
5.5.
What is the Time Complexity of the Fibonacci Heap?
6.
Conclusion
Last Updated: Mar 27, 2024
Easy

Fibonacci Heap

Career growth poll
Do you think IIT Guwahati certified course can help you in your career?
Heap and Priority Queue

Introduction

Fibonacci heap is a variety of Data structures that contains a collection of trees and follows the property of Priority-Queue Data Structures (often referred to as Heap).

In Fibonacci, Heap Node can have zero, two, or more children. The reason why we use the Fibonacci heap is that it has a better and more efficient heap operation as compared to the remaining two heaps.

Also see, Implementation of Heap

Three major types of Heap 

  1. Binary Heap
  2. Binomial Heap
  3. Fibonacci Heap

Binary Heap

It is a Binary Tree with the following properties:

  • It should be a complete tree.
  • It should either be a Min Heap or a Max Heap.
  1. Min Heap: Root element minimum in the Tree.
  2. Max Heap: Root element maximum in the Heap.
     

Binomial Heap

Binomial Heap is a collection of Binomial Tree in which every Binomial Tree follows the Min Heap property. 
A maximum of one Binomial Tree is Permitted of any degree.

Q:-What is Binomial Tree?
A binomial tree of order zero has 1 node. A binomial tree of order ‘k’ may be built by using taking two binomial trees of order k-1 and making one as a leftmost child or other. 

A binomial tree of order okay has the following residences. 

  • It has precisely 2^k nodes. 
  • It has depth as ‘k’. 
  • There are precisely ^kci nodes at intensity i for i = 0, 1, . . . , ok. 
  • The basis has degree k and children of the root are themselves binomial Trees with order k-1, k-2,.. Zero from left to right.
     

Fibonacci Heap

Fibonacci Heap tree is a Collection tree built using the min-heap and max-heap Property of Priority Queue.
The notable thing about the Fibonacci heap is that the Fibonacci heap tree can have any shape even if all three can have single nodes.

Note:
In the case of implementation, the Fibonacci heap is best in terms of time complexity, and it beats Binary Heap and Binomial Heap in time complexity.

Also Read, Prefix Sum Array

The time complexity of the operation of Fibonacci Heap

Some Time complexity of Fibonacci heap

  1. Find Min              O(1)
  2. Delete Min           O(Log n)
  3. Insert                   O(1)
  4. Decrease-heap   O(1)
  5. Merge                  O(1)

Fibonacci Heap

Fibonacci Heap tree is a Collection tree built using the min-heap and max-heap Property of Priority Queue.
The notable thing about the Fibonacci heap is that the Fibonacci heap tree can have any shape even if all three can have single nodes.

Fibonacci heap maintains a pointer to min value(which is the root note for the Fibonacci heap). One of the crucial points about the min-heap is that all of the Tree roots are connected using a Circularly Doubly Linked List. The reason behind this is the access of all the nodes using the min pointer.
 

Reason for the Implementation of the Fibonacci heap

In case of a merge, simply link it. In the case of add operation, simply add a new tree with a single node. The operation extract minimum is the most complex operation. It will delay the work of consolidating trees. This makes delete conjointly sophisticated as delete initial decreases key to minus infinite, then calls extract minimum.

Some interesting facts about Fibonacci Heap operation

  1. In Dijkstra and Prism algorithm with the use of Fibonacci heap we are able to improve the time complexity form O(vLog(v)+eLog(v)) to O(vLog(v)+e);
  2. On pen and paper, it appears to be good in terms of complexity, but it is slow in reality.
  3. The utmost degree of the node of the Fibonacci Heap is O(log(n)).

Frequently Asked Questions

What is Heap?

Heap is a Data Structure that uses Inbuild -priority Queue for Implementation.

Heap is Based on which Data Structures?

It is based on Complete Binary Tree Data Structures

What is a Fibonacci Heap?

It is a variety of Data Structures that uses a collection of Trees for implementation.

What are the major types of Heap?

Binary Heap
Binomial Heap
Fibonacci heap

What is the Time Complexity of the Fibonacci Heap?

O(vLog(v)+e) is the time complexity.

Conclusion

The blog covers information about the Various Types of Heap like Binomial Heap, Binary Heap, and Fibonacci Heap. it also covers the information on the time complexity of various operations performed on the Fibonacci Heap.

The Blog also explains the reason for the implementation of the Fibonacci Heap.

Recommended Readings:


Do check out The Interview guide for Product Based Companies as well as some of the Popular Interview Problems from Top companies like Amazon, Adobe, Google, Uber, Microsoft, etc. on Coding Ninjas Studio.

Also check out some of the Guided Paths on topics such as Data Structure and Algorithms, Competitive Programming, Operating Systems, Computer Networks, DBMS, System Design, etc. as well as some Contests, Test Series, Interview Bundles, and some Interview Experiences curated by top Industry Experts only on Coding Ninjas Studio.

Cheers!

Live masterclass