时间复杂度: O(n²) 平均和最坏情况,O(n) 最好情况
空间复杂度: O(1)
稳定性: 稳定
原理: 重复地遍历数组,比较相邻元素并交换位置,直到没有更多交换为止。
时间复杂度: O(n²) 平均和最坏情况,O(n) 最好情况
空间复杂度: O(1)
稳定性: 稳定
原理: 从第二个元素开始,逐个插入到前面已排序的序列中的正确位置。
时间复杂度: O(n²) 所有情况
空间复杂度: O(1)
稳定性: 不稳定
原理: 每次选择未排序部分的最小元素,放到已排序部分的末尾。
时间复杂度: O(n log n) 平均情况,O(n²) 最坏情况
空间复杂度: O(log n) 平均情况,O(n) 最坏情况
稳定性: 不稳定
原理: 选择一个基准元素,将数组分为小于和大于基准的两部分,递归排序。
时间复杂度: O(n log n) 所有情况
空间复杂度: O(n)
稳定性: 稳定
原理: 分治法,将数组分成两半递归排序,然后合并两个有序数组。