内部排序(堆排序)

内部排序(堆排序)

定义

  

堆排序是利用这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。算法

数组

  堆是具备如下性质的彻底二叉树:每一个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每一个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。以下图:数据结构

同时,咱们对堆中的结点按层进行编号,将这种逻辑结构映射到数组中就是下面这个样子设计

该数组从逻辑上讲就是一个堆结构,咱们用简单的公式来描述一下堆的定义就是:blog

大顶堆:arr[i] >= arr[2i+1] && arr[i] >= arr[2i+2]  排序

小顶堆:arr[i] <= arr[2i+1] && arr[i] <= arr[2i+2]  二叉树

ok,了解了这些定义。接下来,咱们来看看堆排序的基本思想及基本步骤:im

排序思想步骤

实现操做

相关文章
相关标签/搜索