内部排序

1, 堆排序

      设有n 个元素,采用一维向量存储,R[1,2,……n];若元素的之间的关系满足ki>=2i+1 && ki>=2i   ||   ki<=2i+1 && ki<=2i;这样的关系,称之为堆;如果我们将其的存储结构用二叉树描述,则堆实际上是满足如下性质的wanquan二叉树:树中任一结点的关键值均不小于(或者大于)其左右子树的关键值。

      以大顶堆为例,虽然在堆内部,记录无序,但是堆顶的值是最大的,在堆排序中,首先将R[1]与R[n]交换,然后在将R[1]~R[n-1]调整为堆,然后再将R[1]与R[n-1]交换,再将R[1]~R[n-2]调整为堆,……,直到得到一个关键码有序的序列。

      因此,对排序涉及到两个关键的步骤:
      1),建堆

      2),帅选

    建立堆,把n个元素建成二叉树,将每个叶子为根的子树视为堆,然后对R[n/2]为根的子树进行调整,对R[n/2-1]为根的子树进行调整,直到对R[1]为根的树进行调整,这就是最后的初始堆。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值