早教吧作业答案频道 -->数学-->
二叉堆的叶节点在数组中的下标为什么从[n/2]+1开始?《算法导论》里在堆排序那一章有一道证明题如下证明:数组表示存储n个元素的堆时,叶节点的下标分别是[n/2]+1,[n/2]+2,..n(此处[]指取下限[
题目详情
二叉堆的叶节点在数组中的下标为什么从[n/2]+1开始?
《算法导论》里在堆排序那一章有一道证明题如下
证明:数组表示存储n个元素的堆时,叶节点的下标分别是[n/2]+1,[n/2]+2,..n (此处[]指取下限[3/2] = 1)
我的疑问如下:
举例来讲,现在有8个节点,构成了一个二叉堆,
(1)
/ \
(2) (3)
/ \ / \
(4) (5) (6) (7)
/
(8)
即使如算法导论中的惯例,数组下标从1开始,何以见得,leaf node (8)的下标为8,但是按照算法导轮上的这道证明题的结论,叶节点(8)在数组里德下标应该是[n/2]+1= [8/2] + 1 = 5
究竟是怎么回事?是我的理解有偏差吗?
上述二叉堆并没有给出节点的值,括号里的数字是值数组里的index.
《算法导论》里在堆排序那一章有一道证明题如下
证明:数组表示存储n个元素的堆时,叶节点的下标分别是[n/2]+1,[n/2]+2,..n (此处[]指取下限[3/2] = 1)
我的疑问如下:
举例来讲,现在有8个节点,构成了一个二叉堆,
(1)
/ \
(2) (3)
/ \ / \
(4) (5) (6) (7)
/
(8)
即使如算法导论中的惯例,数组下标从1开始,何以见得,leaf node (8)的下标为8,但是按照算法导轮上的这道证明题的结论,叶节点(8)在数组里德下标应该是[n/2]+1= [8/2] + 1 = 5
究竟是怎么回事?是我的理解有偏差吗?
上述二叉堆并没有给出节点的值,括号里的数字是值数组里的index.
▼优质解答
答案和解析
二叉堆一般用数组来表示.如果根节点在数组中的位置是1,第n个位置的子节点分别在2n和 2n+1.因此,第1个位置的子节点在2和3,第2个位置的子节点在4和5.以此类推.这种基于1的数组存储方式便于寻找父节点和子节点.-----------数组表示存储n个元素的堆时,叶节点的下标分别是[n/2]+1,[n/2]+2,..n (此处[]指取下限[3/2] = 1)
是你的理解出了问题:
leaf node (8)的下标为8,按照算法导轮上的这道证明题的结论,有8个节点的二叉堆,在数组里叶节点的下标应该是从 [n/2]+1= [8/2] + 1 = 5 起,一直到 8 .即5~8都是叶节点.
是你的理解出了问题:
leaf node (8)的下标为8,按照算法导轮上的这道证明题的结论,有8个节点的二叉堆,在数组里叶节点的下标应该是从 [n/2]+1= [8/2] + 1 = 5 起,一直到 8 .即5~8都是叶节点.
看了 二叉堆的叶节点在数组中的下标...的网友还看了以下:
电影院的第一排有12)电影院的第一排有10个座位,后面一排比紧挨的前面一排多一个座位,如果某电影院 2020-04-27 …
小明在实验室制取氧气时,不知收集到什么时候才表示已收集满,请你帮他解决问题:①.当用排水法收集时, 2020-05-13 …
怎么验证鱼塘中原有的有机质(比如COD)含量在排入沼液前和排入沼液后一段时间的含量持平.目的是验证 2020-05-16 …
共有24个圆,有五排第一、三、四、五每排都有五个圆第二排四个圆,问怎么才能用一条线穿过所有圆不能有 2020-06-11 …
二叉堆的叶节点在数组中的下标为什么从[n/2]+1开始?《算法导论》里在堆排序那一章有一道证明题如 2020-06-20 …
A/O排泥问题:arm:A/O后面有个沉淀池.排泥是只排沉淀池的泥么?如果是这样,想保证A/O的泥 2020-07-07 …
5人排成一排,其中A不排在左端,也不和B相邻,共有多少种排法?答案是这么解释的,总共有A55排法, 2020-07-09 …
电影院的第一排有10个座位,后面一排比前面一排多一个座位.(1)如果某电影院2号厅有六排座位,那么 2020-08-04 …
排列与组合.组合的性质2,求证明组合性质2,教材上有,未出证明:Cm/(n+1)=Cm/n+C(m- 2020-11-07 …
怎么验证鱼塘中原有的有机质(比如COD)含量在排入沼液前和排入沼液后一段时间的含量持平.目的是验证沼 2020-12-19 …