排序算法之堆排序

来源:互联网 发布:北京工业大学 网络 编辑:程序博客网 时间:2024/06/07 04:01
堆排序,顾名思义,就是基于堆。因此先来介绍一下堆的概念。

堆分为最大堆和最小堆,其实就是完全二叉树。最大堆要求节点的元素都要大于其孩子,最小堆要求节点元素都小于其左右孩子


堆排序(数组实现,也可以链表实现但相对简单),其实现过程便是先将数组下标作为标识,进行调整,使之成为一个堆(大根堆或者小根堆),当调整好之后,先将根节点与最后的叶子节点交换,然后调整。依次交换,直至剩下根节点。当交换结束后,便排序结束。