BFE.devAI解答 - 前端面试问题
1. 常用排序算法的时间空间复杂度是怎么样的
常用排序算法的时间空间复杂度如下:
- 冒泡排序:平均时间复杂度为O(n^2),最好时间复杂度为O(n),空间复杂度为O(1)。
- 插入排序:平均时间复杂度为O(n^2),最好时间复杂度为O(n),空间复杂度为O(1)。
- 选择排序:平均时间复杂度为O(n^2),最好时间复杂度为O(n^2),空间复杂度为O(1)。
- 快速排序:平均时间复杂度为O(nlogn),最坏时间复杂度为O(n^2),空间复杂度为O(logn)。
- 归并排序:平均时间复杂度为O(nlogn),最坏时间复杂度为O(nlogn),空间复杂度为O(n)。
- 堆排序:平均时间复杂度为O(nlogn),最坏时间复杂度为O(nlogn),空间复杂度为O(1)。
在面试中,会针对排序算法的稳定性、适用场景、优化方法等方面展开问题,需要准备充足。