【九月打卡】第18天【养成记】嵌入式挑战第18天 学习堆排序之原理讲解
2022/9/24 3:17:00
本文主要是介绍【九月打卡】第18天【养成记】嵌入式挑战第18天 学习堆排序之原理讲解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
课程名称:
物联网/嵌入式工程师
课程章节(阶段二第七周 堆排序之原理讲解 1-8):
堆排序之原理讲解课程链接
老师:
大白老师
课程内容:
学习常用排序中的堆排序
学习笔记:
概念:
-
堆是一种类似完全二叉树的数据结构,可以分为大顶堆,小顶堆,而堆排序就是基于这种结构而产生的一种程序算法。
-
大顶堆:每个节点的值都大于或则等于其左右孩子的值。
-
小顶堆:每个节点的值都小于或则等于其左右孩子的值。
-
堆排序:若是需要进行堆排序的代码,一定需要先把树构建成大顶堆或则小顶堆,然后在进行排序。
思路:
1.首先,将待排序的数组构造成一个大顶堆,此时,整个数组的最大值就是堆结构的顶端。
2.n为元素个数,将顶端的树与末尾的数交换,此时,末尾的数为最大值,剩余待排序数组个位为n - 1.
3.将剩余的n - 1个数再构造成大顶堆,在将顶端数与 n - 1位置的数交换,如此返回执行,便能得到有序数组。
打卡:
课程评价
本节主要讲解堆排序,对于堆排序,最重要的两个操作是构造初始化堆和重新调整堆。大白老师对堆排序的每个步骤讲的都很清楚,特别是对大根堆,小根堆的调整的讲解,很容易让人理解。
这篇关于【九月打卡】第18天【养成记】嵌入式挑战第18天 学习堆排序之原理讲解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-19永别了,微服务架构!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了
- 2024-05-09Google Chrome驱动程序 124.0.6367.62(正式版本)去哪下载?
- 2024-05-09有没有大佬知道这种数据应该怎么抓取呀?