采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
数组中元素个数为n,索引从0开始的话,最后一个叶子节点的索引为n-1,所以它的父节点索引应该为(n-2)/2,是不是?
是的哦。这一点课程中有误,我发过一个勘误在这里:http://coding.imooc.com/learn/questiondetail/4384.html 同时课程官方的github的代码对这个问题已经更正。
非常抱歉!这个错误在课程升级的时候会在视频里改正过来:)
刚刚画出图发现对排序结果并没有影响,对于最后一个叶子节点是左节点的话,不论是它本身除以2还是再减去1然后除以2,得到的都是它的父节点,而其余的父节点不需要折半计算来得到; 如果最后一个叶子节点是右节点的话,计算得到它的父节点比它本身的父节点要大1,而这个假的父节点本身也没有子节点了,顶多对它的shiftdown操作是无效的。后续的其它非叶节点还是一样地进行shiftdown。
好吧。。才看到勘误里已经写了
:-) 赞思考!
我也看出来不对了. 哈哈
好的,非常感谢!
登录后可查看更多问答,登录/注册
课程专为:短时间内应对面试、升职测评等艰巨任务打造
8.7k 21
5.7k 3
4.9k 5
1.3k 18