堆排序听起来挺难的,其实实现是相当简单。 堆的图形化显示和二叉树类似,对于小顶堆,任意节点的左右子树都小于它,堆顶为最小元素。对于大顶堆,任意节点都大于其左右子树,堆顶为最大元素,定义上容易理解。堆排序是基于数组的,因为数组下标和它特别匹配。如果使用c语言实现堆排序,注意分配数组的时候多分配一个存储单...
正确答案:C解析:由堆的定义我们知道,当为小顶堆时,任意一棵子树的根结点比其左右子结点都要小,所以从任一结点出发到根的路径上,所经过的结点序列必须按其关键字降序排列。大根堆则具有完全相反的性质。很多考生对这个答案不是很理解,认为是二叉排序树。下面,我们根据二叉排序树的定义和性质推导错误结果。二叉排...
堆排序听起来挺难的,其实实现是相当简单。 堆的图形化显示和二叉树类似,对于小顶堆,任意节点的左右子树都小于它,堆顶为最小元素。对于大顶堆,任意节点都大于其左右子树,堆顶为最大元素,定义上容易理解。堆排序是基于数组的,因为数组下标和它特别匹配。如果使用c语言实现堆排序,注意分配数组的时候多分配一个存储单...