快速排序的时间复杂度取决于基准元素的选择方式。在最坏情况下,基准元素被选择为序列中的最小(或最大)元素,此时每次分割只能减少一个元素,需要进行 n 次分割才能完成排序,时间复杂度为 O(n^2)。在最好情况下,基准元素被选择为序列的中位数,此时每次分割将序列平均分成两部分,需要进行 log n 次分割才能完成排序,时间复杂度为 O(n log n)。
由于快速排序采用分治的思想,每次将序列分割成两个子序列进行排序,因此快速排序的时间复杂度为 O(n log n)。快速排序的空间复杂度主要取决于递归调用的层数,即分割的次数,最坏情况下需要进行 n 次分割,因此空间复杂度为 O(n)。