堆排序
堆:
二叉堆数据结构是一种数组对象,可以被视为一棵完全二叉树
父节点:Parent(i) = i/2
左子节点:Left(i) = 2i
右子节点:Right(i) = 2i+1
最大堆:
除了根以外的节点的值至多和父结点的值一样大,最大元素就在根节点
最小堆:
相反
堆排序算法:





优先级队列:
快速排序的一个好的实现往往优于堆排序
优先级队列是一种用来维护由一组元素构成的集合S的数据结构,这一组元素中的每一个都有一个关键字key
一个最大优先级队列支持以下操作:
1 insert:插入
2 maximum:返回S中具有最大关键字的元素
3 extract-max:去掉并返回s中具有最大关键字的元素
4 increase-key:将元素x的关键字的值增加到k,这里k值不能小于x的原关键字的值

浙公网安备 33010602011771号