排序总结-时间复杂度和空间复杂度

排序(Sorting)问题是咱们再业务开发中遇到的最基本问题,所以成为各大IT公司招聘笔试面试必考内容之一。笔者也借着校园招聘对数据结构这一章节的复习对排序问题进行一个简单的总结,而后基于Java进行实现。web

排序分类

  • 排序面试

    • 插入排序数据结构

      • 直接插入排序
      • 折半插入排序
      • 表插入排序
      • 希尔排序
    • 交换排序svg

      • 冒泡排序
      • 快速排序
    • 选择排序spa

      • 直接选择排序
      • 堆排序
      • 归并排序

排序时间复杂度和空间复杂度

类别 平均时间 最坏时间 辅助空间
直接插入排序
O(n2)
O(n2)
O(1)
直接选择
O(n2)
O(n2)
O(1)
快速排序
O(nlog2n)
O(n2)
O(log2n)
堆排序
O(log2n)
O(log2n)
O(1)
归并排序
O(nlog2n)
O(nlog2n)
O(n)