为了账号安全,请及时绑定邮箱和手机立即绑定
首页 手记 【九月打卡】第18天【养成记】嵌入式挑战第18天...

【九月打卡】第18天【养成记】嵌入式挑战第18天 学习堆排序之原理讲解

2022.09.23 06:29 33浏览

课程名称:

物联网/嵌入式工程师

课程章节(阶段二第七周 堆排序之原理讲解 1-8):

堆排序之原理讲解课程链接

老师:

大白老师

课程内容:

学习常用排序中的堆排序

学习笔记:

概念:

  • 堆是一种类似完全二叉树的数据结构,可以分为大顶堆,小顶堆,而堆排序就是基于这种结构而产生的一种程序算法。

  • 大顶堆:每个节点的值都大于或则等于其左右孩子的值。

  • 小顶堆:每个节点的值都小于或则等于其左右孩子的值。

  • 堆排序:若是需要进行堆排序的代码,一定需要先把树构建成大顶堆或则小顶堆,然后在进行排序。

思路:
1.首先,将待排序的数组构造成一个大顶堆,此时,整个数组的最大值就是堆结构的顶端。

2.n为元素个数,将顶端的树与末尾的数交换,此时,末尾的数为最大值,剩余待排序数组个位为n - 1.

3.将剩余的n - 1个数再构造成大顶堆,在将顶端数与 n - 1位置的数交换,如此返回执行,便能得到有序数组。

打卡:

图片描述

图片描述

图片描述

课程评价

本节主要讲解堆排序,对于堆排序,最重要的两个操作是构造初始化堆和重新调整堆。大白老师对堆排序的每个步骤讲的都很清楚,特别是对大根堆,小根堆的调整的讲解,很容易让人理解。

点击查看更多内容
0人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
学生
手记
粉丝
5
获赞与收藏
1

关注TA,一起探索更多经验知识

同主题相似文章浏览排行榜

风间影月说签约讲师

50篇手记,涉及Java、MySQL、Redis、Spring等方向

进入讨论

Tony Bai 说签约讲师

145篇手记,涉及Go、C、Java、Python等方向

进入讨论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消