插入排序
直接插入

插入排序(稳定)
时间复杂度O(n^2)
- 空间复杂度O(1)
- 代码实现:
1 | public class InsertionSort { |
希尔排序
- 希尔排序(不稳定)
- 设置步长,分组插入排序

- 代码实现:
1 | public class ShellSort { |
选择排序
直接选择

- 选择排序(不稳定)
- 不断地选择剩余元素中的最小者
- 时间复杂度O(n^2)
- 空间复杂度O(1)
- 代码实现:
1 | public class SelectionSort { |
堆排序

- 堆排序(不稳定)
- 时间复杂度 O(nlogn)
- 空间复杂度O(1)
- 代码实现:
1 | public class HeapSort { |
交换排序
冒泡排序

- 冒泡排序(稳定)
- 时间复杂度O(n^2)
- 空间复杂度O(1)
- 代码实现:
1 | public class TestBubbleSort { |
快速排序

- 快排 = 冒泡 + 分治 + 递归
- 时间复杂度 O(nlogn)
- 空间复杂度O(logn)
- 代码实现:
1 | public class TestQuickSort { |
归并排序

- 归并排序(稳定)
- 递归 + 合并
- 时间复杂度 O(nlogn)
- 空间复杂度O(n) +O(logn)
- 代码实现:
1 | public class MergeSort { |
对比
