就 space 复杂度而言,哪种排序算法最好 - 快速排序还是插入排序?

Which sorting algorithm is best in terms of space complexity - Quick Sort or Insertion Sort?

我知道快排的时间复杂度比插入排序小

我听说由于递归堆栈,快速排序比插入排序复杂 space。你对此有何看法?

插入排序是一种就地排序算法,意味着没有辅助数据结构,该算法仅在输入数组内执行交换。所以 space 复杂度是 O(1)。在 space 中插入排序更好。

快速排序和插入排序都是就地基于比较的排序算法。

None 以上两种排序算法需要额外的 space 但 插入排序 的 space 复杂度是 O(1) 因为它在交换期间使用了很少的临时变量。

但是Quick Sort的space复杂度是O(log(n)),这是因为分区后,元素最少的分区首先被(递归)排序,最多需要 O(log(n)) space。另一个分区使用 tail-recursion 排序,这不会添加到调用中 stack.This 保持堆栈深度受 O(log(n)).