堆排序

转载
发布于:2024/03/05 更新于:2024/03/05 764
1 1 0
Scratch作者 Scratch官网精选
Scratch官网精选

Scratch作品简介

当屏幕右下角出现箭头时,单击任意位置即可前进。 这解释了如何使用称为堆排序的排序算法按从小到大的顺序对数字列表进行排序。 我们还解释了堆的概念,或更具体地说,最大堆的概念。 还有最小堆这样的东西,它是相同的概念,只是每个节点的子节点必须大于其父节点。 请参阅内部预构建的堆排序算法,包括 heapify 过程! 您可能会注意到我解释了如何判断树中哪个节点是最后一个有子节点的节点,以及我如何说“如果根节点的索引为 0”。我从 0 开始,因为许多现代编程语言将数组中的第一项称为第 0 项,或索引 0 处的项。这些称为 0 索引数组。另一方面,为了简单起见,Scratch 使用 1 作为列表中第一项索引,因此 Scratch 列表是 1 索引的。获取 1 索引树中最后一个带有子节点的函数并没有太大不同,您只需向上舍入(使用向上取整操作)而不是向下舍入。 我从研究中学习这些算法,但我要特别感谢 YouTube 上 udiprod 的视频通过演示简化了这些信息。 https://scratch.mit.edu/projects/944760756/ by D-ScratchNinja

Scratch操作说明

经典排序算法之四:堆排序(英语:Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆的性质:即子节点的键值或索引总是小于(或者大于)它的父节点。
查看积木
算法 排序

评论区

登录之后才能评论Scratch作品哦
FantasyUser226 个月前

666