A-A+
对于关键码序列18 30 35 10 46 38 5 40 进行堆排序(假定堆的根结点是最小
问题详情
对于关键码序列18,30,35,10,46,38,5,40,进行堆排序(假定堆的根结点是最小关键码),在初始建堆过程中需进行的关键码交换次数为()。
A.2次
B.3次
C.4次
D.5次请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:B
解析:原始的堆如图1所示:因为n=8,所以n/2=4,所以从K4=10开始,第一次比较10<40,不用交换:第二次比较35>5,两者相互交换,交换后如图2所示:第三次比较30>10,两者相互交换,交换后如图3所示;第四次比较18>5,两者相互交换,交换后如图4所示。所以交换的次数为3次。