堆是一种什么排序


堆是一种什么排序

文章插图
【堆是一种什么排序】堆是一种选择排序 , 堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法 , 它是选择排序的一种 。可以利用数组的特点快速定位指定索引的元素 。
堆分为大根堆和小根堆 , 是完全二叉树 。大根堆的要求是每个节点的值都不大于其父节点的值 。在数组的非降序排序中 , 需要使用的就是大根堆 , 因为根据大根堆的要求可知 , 最大的值一定在堆顶 。
堆排序的时间 , 主要由建立初始堆和反复重建堆这两部分的时间开销构成 , 它们均是通过调用Heapify实现的 。