冒泡排序

冒泡排序示例:

  • 时间复杂度:O(n^2)
  • 特点:稳定的排序算法,即数组内相等元素不会排序后发生变化!

插入排序

插入排序示例
插入排序时间复杂度

  • 特点:同样是稳定的

归并排序

  • 核心思想:分治的思想

归并排序代码1
归并排序代码2

复杂度分析

  • 特点:同样是稳定的

快速排序

  • 基本思路实现:选取左点,左右两端分别往中间走,注意要用“等于”的条件。

基本的快排的Partition函数实现

  • 优化1: 选择点的优化:

选点优化的快排Partition函数

  • 优化2: 改交换为赋值:

交换换赋值的优化的快排Partition函数

  • 优化3: 设定小个数的数组使用插入排序来完成

  • 优化4: 使用伪递归:
    伪递归优化快排