面试常见的排序

一、快速排序
快速排序平均时间复杂度为o(nlogn),最坏时间复杂度为o(n^2),不稳定;
主要可以通过以下几种方式来优化:
- 三数取中,使选择的“标杆”能够尽量的将数组平均划分成两半,避免选择到边界值使时间复杂度退化到o(n^2);
- 双指针操作,减少在对比时的交换次数;
- 每次遍历集中放置与“标杆”相同的值,减少递归深度;
1 |
|
二、归并排序
归并排序时间复杂度为o(nlogn),空间复杂度为o(n),稳定;
1 |
|
三、堆排序
堆排序时间复杂度为o(nlogn),空间时间复杂度为o(1),不稳定;
1 |
|
四、希尔排序
希尔排序时间复杂度为o(nlogn),空间时间复杂度为o(1),不稳定;
1 |
|
- Post title:面试常见的排序
- Post author:爱吃鱼的猫
- Create time:2022-05-05 12:39:54
- Post link:https://djtang.github.io/2022/05/05/面试常见的排序/
- Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.
Comments