S8. 堆排序

温馨提示:您没有权限查看当前视频。 立即购买观看视频

描述

堆排序是一种基于比较的排序算法。它的算法思想和选择排序相似,都是把数组分为有序区和无序区,每次都从无序区中取最大值或最小值,放入有序区,直到整个数组有序。和选择排序的区别是,堆排序使用了一个二叉堆来组织无序区中的数据,以此减少从无序区中查找最值的时间。

二叉堆逻辑上是一棵完全二叉树,但实际上存储在一维数组中即可。根据堆是最大堆还是最小堆的不同,具有不同的性质。在最大堆中,树上任意节点的值都大于等于它的子节点。而在最小堆中,树上任意节点的值都小于等于它的子节点。

关于 AlgoCasts

AlgoCasts 旨在用心做好每一个算法讲解视频。每个视频包含两个部分:题目的剖析讲解以及编码,力求在讲解清楚到位的基础上,尽可能地保持视频精简短小,让大家可以在碎片时间里进行学习,并收获这些算法题背后的思想与乐趣。