去除尾递归的快速排序以及快速排序的栈深度

对于栈深度的定义: 编译器一般使用栈来存储递归执行过程当中的相关信息,包括每次递归调用的参数等。最新调用的信息存在栈的顶部,而第一次调用的信息存在栈的底部。当一个过程被调用时,其相关信息被压如栈中,当它结束时,其信息被弹出。栈深度是在一次计算中会用到的栈空间的最大值。 对于快速排序,假设数组参数的传递是用指针来指示的,因此每次过程调用只须要O(1)的栈空间。 去除尾递归的快速排序伪代码以下:web
相关文章
相关标签/搜索