最大堆这块,最后一个父节点不应该是length - 2/2么,不是直接除以2吧
来源:12-2 堆排序-代码演示(1)

hualuohuajin
2019-05-26
写回答
2回答
-
Nick_arron
2019-09-09
按照老师课上讲的,如果最后一层也是满的,父节点和右子节点的关系是 i*2+2,不过最后一层并不一定占满,所以不能用 (length-2)/2;
不过我认为直接 length / 2也是不精确的,比如 0 1 2,只有三个节点时,length/2 = 1.5,这是认为最后一个父节点的索引是1,但实际上是0,不过虽然这里不精确,但因为是循环,所以并没有影响计算结果。
00 -
快乐动起来呀
2019-05-28
那不是最后一个节点,而是最后一层,你看下PPT中有讲,树的节点和层的关系,你再看下
00
相似问题