排序算法之 堆排序

24 篇文章 16 订阅 ¥19.90 ¥99.00

目录

一、堆排序

1、定义

2、建堆方法

3、建堆时间复杂度

4、建堆算法

5、堆插入

6、 删除堆顶后调整

7、 堆的意义


一、堆排序

                                                                                                                                                   

选择排序算法,是选择最值,然后将其调整到合适位置。

如何确定最值,则是选择排序算法的关键。

简单排序算法是通过比较,确定最值的位置。假设未排序元素个数为N,则遍历一趟,需比较N-1次,再遍历下一趟时,需比较N-2次。但是,第二趟比较完全是独立的,没有利用第一次比较的信息。因为,第一趟比较时也没有把比较信息保留下来。

能不能找到一种方法,可以将本趟比较信息记录下来,以供下一趟求最值时使用,从而达到减少比较次数的目的。

一维数组,从直观上来看,是一种线性结构,这也是我们所熟知的。

但是,一维数组,还可以表达完全二叉树结构,这个确是不经常用到。

简单选择排序,是将一维数组看做线性结构,逐个比较。

但是,如果将其看做二叉树结构,有没有方法将其比较次数降低呢࿰

  • 12
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清水迎朝阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值