早教吧 育儿知识 作业答案 考试题库 百科 知识分享

大根堆为什么排序结果是递增的?大根堆不是根结点最大吗?那输出顶点的顺序不就是:第一大、第二大、第三大.最小.这不是递减吗、怎么得出递增的结果?比如大根堆312(1)输出3、(2)调

题目详情
大根堆 为什么排序结果是递增的?
大根堆不是根结点最大吗?
那输出顶点的顺序不就是:第一大、第二大、第三大.最小.
这不是递减吗、
怎么得出递增的结果?
比如大根堆
3
1 2
(1)输出3、
(2)调整为
2
1
(3)输出2
(4)调整为
1
(5)输出1
输出顺序不是 3 2
▼优质解答
答案和解析
堆使用的时候都是每次把堆顶的元素干掉留下堆内部的元素做成Top N,你要找最大的N个元素需要使用小根堆每次把最小的元素干掉,保证剩下来的是最小的N个,如果你用大根堆,每次淘汰堆顶元素的话,得到的是最小的N个.出来结果递增的正是小根堆的特点啊!说明堆使用的是小根的,但是你认为是大根堆罢了!