遍历完整的二进制最小堆

Inu*_*art 8 language-agnostic arrays algorithm heap containers

我不知道如何遍历下面的树结构,以便节点始终按升序排列.对数组进行修改会[9 8 7 6 5 4 3 2 1 0]产生[0 1 3 2 5 4 7 9 6 8]我认为对应于此表示的数组:

堆绘图

想要保持数组不变(因为我想稍后进行高效的插入)如何以升序有效地遍历它?(即按此顺序访问节点[0 1 2 3 4 5 6 7 8 9])

Dav*_*tat 3

只需对数组进行排序即可。之后它仍然是一个最小堆,并且没有其他算法渐近更高效。