mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-24 13:24:05 -06:00
804 B
804 B
| title | tags | ||
|---|---|---|---|
| heap |
|
heap
A tree where:
- every elements should be greater than ites children
- the structure should be filled from top to bottom and left to right
To remove an element
- remove from the top, replace with the last element
- to fix the first condition swap the top element with the highest of its children until fixed
To Add an element
- add to the next position
- If its larger than its parent then swap them
How deep is the tree?
- each layer is twice as deep and the preceding one
- layer k can hold
2^kelements - to store n elements we use k layers where
k = lg n - so we need ϴ(lg n) layers
- So any algorithm that 'walk along a branch' in while or in part will have Ο(n) complexity (assuming constant time work at each node)