问题 填空题

对于关键码序列18, 30, 35, 10, 46, 38, 5, 40进行堆排序(假定堆的根节点为最小关键码) ,在初始建堆过程中需进行的关键码交换次数为______。

答案

参考答案:C

解析: 堆排序是完全二叉树的一个重要应用,可以解释为完全二叉树中的任一节点的关键码都小于或等于它的两个子女的关键码。排序的基本思想是:对一组待排序的关键码首先把他们按照堆的定义排成一个序列(建堆),取出最小关键码,余下的关键码再建堆,再取出最小关键码,如此反复,直到全部关键码排序完毕。本题的解答步骤为:第一次:18, 30, 5, 10, 46, 38, 35, 40;第二次:18, 10, 5, 30, 46, 38, 35, 40;第三次:5, 10, 18, 30, 46, 38, 35, 40。3次以后就可以了。

单项选择题
单项选择题