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]