二、堆排序
简单排序的时间复杂度是O(n^2),简单选择排序只要操作是进行关键字的比较,怎样减少比较次数就是改进的关键。
堆排序:A、B、C进行比赛,B战胜了A,C战胜了B,那么显然C可以战胜A,C和A就不用比了。
堆是一种数据结构, 是一颗完全二叉树且满足性质:所有非叶子结点的值均不大于或均不小于其左,右孩子节点的值,
A[i]<=A[2*i] && A[i]<=A[2*i+1]。其中A[i]对应堆中的非叶子结点,A[2*i]和A[2*i+1]对应于左右孩子结点。并且最后一非叶子结点下标为[n/2]向下取整。