src/data-structures/heap/README.md
Read this in other languages: 简体中文, Русский, 日本語, Français, Português, Türkçe, 한국어, Українська
In computer science, a heap is a specialized tree-based data structure that satisfies the heap property described below.
In a min heap, if P is a parent node of C, then the
key (the value) of P is less than or equal to the
key of C.
Made with okso.app
In a max heap, the key of P is greater than or equal
to the key of C
The node at the "top" of the heap with no parents is called the root node.
Here are time complexities of various heap data structures. Function names assume a max-heap.
| Operation | find-max | delete-max | insert | increase-key | meld |
|---|---|---|---|---|---|
| Binary | Θ(1) | Θ(log n) | O(log n) | O(log n) | Θ(n) |
| Leftist | Θ(1) | Θ(log n) | Θ(log n) | O(log n) | Θ(log n) |
| Binomial | Θ(1) | Θ(log n) | Θ(1) | O(log n) | O(log n) |
| Fibonacci | Θ(1) | Θ(log n) | Θ(1) | Θ(1) | Θ(1) |
| Pairing | Θ(1) | Θ(log n) | Θ(1) | o(log n) | Θ(1) |
| Brodal | Θ(1) | Θ(log n) | Θ(1) | Θ(1) | Θ(1) |
| Rank-pairing | Θ(1) | Θ(log n) | Θ(1) | Θ(1) | Θ(1) |
| Strict Fibonacci | Θ(1) | Θ(log n) | Θ(1) | Θ(1) | Θ(1) |
| 2-3 heap | O(log n) | O(log n) | O(log n) | Θ(1) | ? |
Where:
In this repository, the MaxHeap.js and MinHeap.js are examples of the Binary heap.