QUICKSORT(A,p,r)
if p < r then
q=PARTITION(A,p,r)
QUICKSORT(A,p,q-1)
QUICKSORT(A,q+1,r)
这使用O(n)额外空间
在Cormen ch 7-4“堆叠深度快速排序”中提到了 - QUICKSORT中的第二次递归调用是不必要的,可以通过迭代控制结构来避免。这种方法称为尾递归
QUICKSORT'(A,p,r)
while p < r
q=PARTiTION(A,p,r)
QUICKSORT'(A,p,q-1)
p=q-1
空间复杂度O(log n)
我无法理解空间复杂性是如何降低的。
我不认为它的尾递归
任何人都可以解释空间复杂度如何降低(调用如何使用堆栈)或任何其他更好的方法来实现这一点。