首页 > 试题广场 > 判断下列说法是否正确:在用堆排序算法排序时,如果要进行增序排
[单选题]
判断下列说法是否正确:在用堆排序算法排序时,如果要进行增序排序,则需要建立“大顶堆”。(  )

  • 正确
  • 错误

4个回答

添加回答
推荐
选A。堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆。
  1. 将无需序列构建成一个堆,根据升序需求选择大顶堆;

    将堆顶元素与末尾元素交换,将最大元素"沉"到数组末端;

  2. 重新调整结构,使其满足堆定义,然后继续交换堆顶元素与当前末尾元素,反复执行调整+交换步骤,直到整个序列有序。



编辑于 2019-06-13 14:12:55 回复(0)
这个题首先是增序,那就是先小后大,考虑到堆也能存放数据,按照正常逻辑,所以应该是建立大顶堆。这样每次最大的数据就跑到堆所在数组的最后面去了。
这里答案应该选A
还有需要考虑的就是这个数据如果直接输出的话那就必须用小顶堆了。
如果还要存起来作为返回值,那就用大顶堆。
按照通常情况都是函数返回值来看,这题选A


发表于 2019-06-12 16:30:21 回复(0)
A。 使用大顶堆进行排序,每次循环将堆顶的元素(最大的值)和待排序最后一个元素进行位置交换,这样大的元素便沉到后面了。
发表于 2019-06-12 15:56:12 回复(0)
a
发表于 2018-12-10 20:47:48 回复(1)