堆排序(HeapSort)

二进制堆(binary heap)

一个二进制堆是一个完全二叉树结构,它要么是最小堆,要么是最大堆。在最大堆中,根部的键必须是堆中所有键的最大值,对于二叉树中的所有节点,同样的属性必须是递归的。最小堆与最大堆类似。 比如这是一个最大堆:

1
2
3
4
5
    10
   /  \
  5    3
 / \
4   1