![堆是一种什么排序](http://img.jingyanzongjie.com/240912/1H2054412-0.jpg)
堆是一种选择排序,堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种 。可以利用数组的特点快速定位指定索引的元素 。
堆分为大根堆和小根堆,是完全二叉树 。大根堆的要求是每个节点的值都不大于其父节点的值 。在数组的非降序排序中,需要使用的就是大根堆 , 因为根据大根堆的要求可知,最大的值一定在堆顶 。
堆排序的时间,主要由建立初始堆和反复重建堆这两部分的时间开销构成,它们均是通过调用Heapify实现的 。
【堆是一种什么排序】由于建初始堆所需的比较次数较多 , 所以堆排序不适宜于记录数较少的文件 。堆排序是就地排序,辅助空间为0 。它是不稳定的排序方法 。(排序的稳定性是指如果在排序的序列中,存在前后相同的两个元素的话 , 排序前和排序后他们的相对位置不发生变化)