排序

  • 内部排序—八大排序;

    • 插入排序(直接插入排序、希尔排序)
    • 选择排序(简单选择排序、堆排序)
    • 交换排序(冒泡排序、快速排序)
    • 归并排序
    • 基数排序
  • 外部排序—排序数据很大,一次不能容纳全部数据的排序记录,排序过程中需要使用外存;

  • 直接插入排序—稳定排序

    • 将一条记录n,插入到已排好的n-1有序表中,直至全部记录插入完为止;
  • 希尔排序—缩小增量排序—不稳定排序

    • 将要排序的一组数,根据某一增量分为若干子序列,并对子序列分别进行插入排序,再逐渐将增量减少重复上述过程,直至增量为1;
  • 简单选择排序—-不稳定排序

    • 在一组数中选出最小与第一位置的数交换,再在剩下的数中找最小与第二位置的数交换,直至n-1元素与n元素比较为止;
  • 堆排序—不稳定排序—-完全二叉树,最大堆(父节点的值总是大于它的子节点)

    • 现将数组排成数,再根据规则从最后一个非叶节点开始调整;
  • 冒泡排序—稳定排序

    • 对数组相邻两个数依次比较调整,小的往前,大的往后;
  • 快速排序

    • 选择一个基准元素,通过一走向排序将数组分为2部分,其中一部分比之小,另一部分比之大,再对这两部分分纪录执行同样操作。
  • 归并排序

    • 将2个或2个以上有序表合成一个新的有序表