我的第一本算法书 配套 算法动画图解.apk, 能快速了解各个数据结构和算法
堆排序部分,可以参考 STL源码剖析 4.7 heap(隐式表述,implicit representation)
STL 是max heap, 最大在最前面
push_heap 放在最后,执行上升的过程。
pop_heap 把根结点移到最后,把最后的节点移到根,执行下降的过程。
pop_heap 并不删除元素,只是放在最后。 可以用底部容器 vector的back来取值,或者pop_back 删除
每次改变last--,从后往前pop_heap,就能实现堆排序
make_heap 把一个数组做成隐式的heap形式