堆是一種什么排序


堆是一種什么排序

文章插圖
【堆是一種什么排序】堆是一種選擇排序 , 堆排序(Heapsort)是指利用堆積樹(堆)這種數據結構所設計的一種排序算法 , 它是選擇排序的一種 。可以利用數組的特點快速定位指定索引的元素 。
堆分為大根堆和小根堆 , 是完全二叉樹 。大根堆的要求是每個節點的值都不大于其父節點的值 。在數組的非降序排序中 , 需要使用的就是大根堆 , 因為根據大根堆的要求可知 , 最大的值一定在堆頂 。
堆排序的時間 , 主要由建立初始堆和反復重建堆這兩部分的時間開銷構成 , 它們均是通過調用Heapify實現的 。