排序分为四种(交换、选择、插入、合并):
- 交换排序: 包括冒泡排序,快速排序。
- 选择排序: 包括直接选择排序,堆排序。
- 插入排序: 包括直接插入排序,希尔排序。
- 合并排序: 合并排序。
冒泡排序:
从前往后依次比较,逐个交换,效率较低,时间复杂度为: 0(n) - 0(n^2)
快速排序:
通过第一遍的遍历(让left和right指针重合)来找到数组的切割点,平均时间复杂度: N(logN),最坏时间复杂度: 0(n^2)
直接选择排序:
找出基准后最小数进行交换,直接选择排序的时间复杂度为:O(n^2)
堆排序:
构建并输出大根堆,堆排序的时间复杂度:O(NlogN)
直接插入排序:
以基准从前往后依次比较插入,时间复杂度为:O(N^2)
希尔排序:
缩小增量排序法,d=count/2k,平均为:O(N^3/2),最坏: O(N^2)
归并排序:
- “分”, 就是将数组尽可能的分,一直分到原子级别。
- “并”,将原子级别的数两两合并排序,最后产生结果。
- 时间复杂度为: O(NlogN),空间复杂度为: O(N)