首页 > 代码库 > 排序算法 -- 堆排序

排序算法 -- 堆排序

前言

面试中被问到了一个题目(http://www.voidcn.com/blog/u010943214/article/p-3808842.html),然后重温了一遍堆排序。

问题:

给你一个双向链表,有序输出,

限制:

  空间复杂度O1,

  时间复杂度nlogn,最坏不能退化n2

思路:

  1 根据双向链表构建一个二叉树

  2 对二叉树进行堆排序

堆的定义

堆的特性

如何构造一个堆

构造一个堆的时间复杂度

如何从堆中删除最大的键值

堆排序

堆排序使用场景

 

排序算法 -- 堆排序