思路:遍历第i到第n个,找到i到n范围内最小的数,然后放在i的位置.接着遍历i+1到第n个,找到i+1到n范围内最小的数,然后放在i+1的位置,重复执行下去,最后数组从小到大排列.
堆是具有下列性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆; 或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆
思路:将待排序的序列构造成一个大顶堆.此时,整个序列的最大值就是堆顶的根结点.将官移走(其实就是将其与堆数组的末尾元素交换,此时末尾元素就是最大值),然后将剩余的 n - 1 个序列重新构造成一个堆,这样就刽寻到 n 个元素中的次小值.如此反复执行, 便能得到一个有序序列了.