问答题 如何进行堆排序
【正确答案】
【答案解析】堆是一种特殊的树形数据结构,其每个结点都有一个值,通常提到的堆都是指一棵完全二叉树,根结点的值小于(或大于)两个子结点的值,同时,根结点的两个子树也分别是一个堆。
堆排序是一树形选择排序,在排序过程中,将R[1…n]看作一颗完全二叉树的顺序存储结构,利用完全二叉树中父结点和子结点之间的内在关系来选择最小的元素。
堆一般分为大顶堆和小顶堆两种不同的类型。对于给定n个记录的序列(r(1),r(2),…,r(n)),当且仅当满足条件(r(i)>=r(2i)且r(i)>=r(2i+1),i=1,2,…,n)时称之为大顶堆,此时,堆顶元素比为最大值。对于给定n个记录的序列(r(1),r(2),…,r(n)),当且仅当满足条件(r(i) r(2i)且r(i)