堆排序
基本知识
稳定性:不稳定
存储方式:内排序
空间复杂度:O(1)
最坏时间复杂度:O(n logn)
最好时间复杂度:O(n logn)
平均时间复杂度:O(n logn)
基本思想
堆排序是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序可以说是一种利用堆的概念来排序的选择排序。分为两种方法:
- 大顶堆:每个节点的值都大于或等于其子节点的值,在堆排序算法中用于升序排列;
- 小顶堆:每个节点的值都小于或等于其子节点的值,在堆排序算法中用于降序排列;