简单选择排序

  • 通过n(n-1)/2次比较,每次找出最小值与第 i 个记录交换。

  • 把堆看作一个完全二叉树
  • 父节点比子节点大叫大顶堆
  • 父节点比子节点小叫小顶堆

堆排序

  • 原始数列对应的完全二叉数
  • 将序列调整为堆(建立初始堆)
    • 从最后一个非终端节点开始,即第n/2(向下取整)个元素开始
    • 调整时把父节点与左右子节点进行比较。
    • 若第一次交换后父节点变为子节点,还是没有变为堆–父节点大于(小于)子节点,则子节点与子节点的子节点再次比较交换。
  • 插入节点:把节点插入到序列的最右边(最后一个结点+1的位置),在进行调整(筛选)
  • 输出节点:将根节点与最后一个二叉树节点进行交换,再对堆进行调整,完全二叉树长度减 1 。
    选择排序:简单选择排序、堆排序

相关文章: