- Split the problem into sub problems such that their solutions can be used to construct the solution of the complete probelm
- Mostly used in optimization problems like max sub array sum, stock buy sell etc.
- Can't be used when there are more than one solution
- A binary heap is a binary tree i.e. each node must have two children. The tree is filled sequentially i.e. only the nodes at the end are allowed to have less than 2 children
- Heaps satifies the heap invariant i.e.
child nodes <= parent node
(max heap) orchild nodes >= parent nodes
(min heap)