A binary heap is a complete binary tree where every node has a key more extreme (greater or less) than or equal to the key of its parent. An array implementation stores the keys in an array. The parent of a node is the node's index in the array, divided by two, rounded down. Merging two binary heaps is O(n): the best you can do is just concatenate two heap arrays and make a heap of the result. Two binomial heaps can be merged in O(ln n).