我有这个问题,在堆数据结构中,一个左子可以不仅仅是一个自己级别的右子?我的意思是考虑这三个数字9,5,8并且我想创建一个最大堆数据结构,因此根将是9并且8是它的左子,5是它的右子是真的吗? 请帮助我谢谢
答案 0 :(得分:2)
那没关系。 max-heap中的节点必须具有较低的子节点,并且最小堆中的节点必须具有较大的子节点。这是唯一的要求。
答案 1 :(得分:0)
Max-Heap属性:
Min-Heap属性:
因此,Heap不适合搜索,但它用于排序元素数组,因为搜索需要线性O(n)时间。
对于搜索,我们总是可以选择在O(h)时间内执行相同操作的二进制搜索树(BST)。在最好的情况下,如果BS树是平衡的,它将在O(logn)中进行搜索。