堆存在数组中是按照从上到下从左到右的顺序排列。堆分为大根堆和小根堆,大根堆是父节点的值一定大于等于子节点的值,小根堆反之。

堆 - 图1

下标从0开始,对于任一节点位置i,那么它的

左孩子位置:2*i+1

右孩子位置:2*i+2

父节点位置:(i-1)/2