作者D-ScratchNinja


当屏幕右下角出现箭头时,请点击任意位置以继续。

这里解释了如何使用一种名为堆排序的排序算法,按从最小到最大的顺序对一列数字进行排序。

我们还解释了堆的概念,更具体地说,是最大堆。

堆还有一种叫做最小堆,与最大堆的概念相同,不同之处在于每个节点的子节点必须大于其父节点。

详情请参阅预置堆排序算法,包括堆化过程!

您可能注意到我解释了如何确定树中最后一个带有子节点的节点,以及我提到了“如果根节点的索引为0”。我从0开始,因为许多现代编程语言将数组的第一个项称为第0项或索引为0的项。这被称为0索引数组。而Scratch为简单起见,使用1作为列表中第一项的索引,所以Scratch的列表是1索引的。在1索引的树中获取最后一个带有子节点的节点的函数并不会有太大差异,只需进行向上取整(使用天花板操作)而不是向下取整。

预览

版权说明:资源均源于互联网收集整理,不保证资源的可用及完整性,仅供个人学习研究,请勿商用。喜欢记得支持正版,若侵犯第三方权益,请及时联系站长删除!