数据结构中的堆应用,是否仅限于堆排序算法?

2026-05-19 21:180阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计3030个文字,预计阅读时间需要13分钟。

数据结构中的堆应用,是否仅限于堆排序算法?

开始那一刻+一位演讲老师正在讲述正确的爱情观+情到深处,老师激动的说道:你一个月赚三千,凭什么让一个月赚三千的人喜欢你?+结果底部站起一个女孩,说:因为我骚啊!

开心一刻

  一天,一个演讲老师正在演讲正确的爱情观

  情到深处,老师激动的说道:你一个月挣三千,凭什么让一个月挣三万的人喜欢你?

  结果底下站起来一个女孩,说道:因为我骚呀

堆结构

  定义:堆就是用数组实现的完全二叉树,并且根据堆属性来排序,决定节点在树中的顺序

  信息量是不是有点大?

  欸,有这些疑问就对了,我们慢慢往下看

  堆属性

  堆分为两种:大顶堆和小顶堆,也称最大堆和最小堆

  在大顶堆中,父节点的值大于等于左右孩子节点的值。在小顶堆中,父节点的值小于等于左右孩子的值。这就是所谓的堆属性,并且这个属性对堆中的每一个节点都成立

  注意:堆属性只限制了父节点与其左右孩子的大小关系,并没有限制左右孩子之间的大小关系

  我们看个例子

  上图中父节点有两个:9 和 5,9 比 5 和 7 都大,5 比 3 和 2 都大,满足大顶堆的属性,所以它是一个大顶堆

  上图中父节点有两个:2 和 5,2 比 5 和 3 都小,5 比 7 和 9 都小,满足小顶堆的属性,所以它是一个小顶堆

  由此我们可以得出:大顶堆的根节点存放的肯定是最大值,小顶堆的根节点存放的肯定是最小值

  大顶堆能够快速得到最大值、小顶堆能够快速得到最小值,但也就仅此而已了。

阅读全文

本文共计3030个文字,预计阅读时间需要13分钟。

数据结构中的堆应用,是否仅限于堆排序算法?

开始那一刻+一位演讲老师正在讲述正确的爱情观+情到深处,老师激动的说道:你一个月赚三千,凭什么让一个月赚三千的人喜欢你?+结果底部站起一个女孩,说:因为我骚啊!

开心一刻

  一天,一个演讲老师正在演讲正确的爱情观

  情到深处,老师激动的说道:你一个月挣三千,凭什么让一个月挣三万的人喜欢你?

  结果底下站起来一个女孩,说道:因为我骚呀

堆结构

  定义:堆就是用数组实现的完全二叉树,并且根据堆属性来排序,决定节点在树中的顺序

  信息量是不是有点大?

  欸,有这些疑问就对了,我们慢慢往下看

  堆属性

  堆分为两种:大顶堆和小顶堆,也称最大堆和最小堆

  在大顶堆中,父节点的值大于等于左右孩子节点的值。在小顶堆中,父节点的值小于等于左右孩子的值。这就是所谓的堆属性,并且这个属性对堆中的每一个节点都成立

  注意:堆属性只限制了父节点与其左右孩子的大小关系,并没有限制左右孩子之间的大小关系

  我们看个例子

  上图中父节点有两个:9 和 5,9 比 5 和 7 都大,5 比 3 和 2 都大,满足大顶堆的属性,所以它是一个大顶堆

  上图中父节点有两个:2 和 5,2 比 5 和 3 都小,5 比 7 和 9 都小,满足小顶堆的属性,所以它是一个小顶堆

  由此我们可以得出:大顶堆的根节点存放的肯定是最大值,小顶堆的根节点存放的肯定是最小值

  大顶堆能够快速得到最大值、小顶堆能够快速得到最小值,但也就仅此而已了。

阅读全文