Computer science 堆排序及其结构的一般问题

Computer science 堆排序及其结构的一般问题,computer-science,heapsort,Computer Science,Heapsort,假设您的堆中有[12,11,10,9,8,7,6,5,4,3,2,1]。你会有12个孩子做你的家长。11岁和10岁是12岁的独生子女,因为他们是所有孩子中最高的吗 这听起来很明显,但我的代码看起来是正确的,而且我得到了相互矛盾的结果。我得到的不是12岁孩子的11岁和10岁,而是11岁和7岁。11和7的子元素的值都比它们低,所以我的代码不想继续对其排序 我的主要问题是,只要7岁的孩子价值较低,7岁的孩子能成为12岁的孩子吗 是的,7可以是堆树中根的正确子级,存储从1到12的整数序列(包括)。考虑下

假设您的堆中有
[12,11,10,9,8,7,6,5,4,3,2,1
]。你会有12个孩子做你的家长。11岁和10岁是12岁的独生子女,因为他们是所有孩子中最高的吗

这听起来很明显,但我的代码看起来是正确的,而且我得到了相互矛盾的结果。我得到的不是12岁孩子的11岁和10岁,而是11岁和7岁。11和7的子元素的值都比它们低,所以我的代码不想继续对其排序


我的主要问题是,只要7岁的孩子价值较低,7岁的孩子能成为12岁的孩子吗

是的,
7
可以是堆树中根的正确子级,存储从
1
12
的整数序列(包括)。考虑下面的线性数组,表示这个树在节点的位置和它的子的位置之间:

V = [12, 11, 7, 10, 9, 3, 2, 8, 6, 5, 4, 1]
堆属性对该数组有效,因为范围
[0,6]
中的所有
i

V[i] > V[2*i + 1]
V[i] > V[2*i + 2]