去除尾遞歸的快速排序以及快速排序的棧深度

對於棧深度的定義: 編譯器一般使用棧來存儲遞歸執行過程當中的相關信息,包括每次遞歸調用的參數等。最新調用的信息存在棧的頂部,而第一次調用的信息存在棧的底部。當一個過程被調用時,其相關信息被壓如棧中,當它結束時,其信息被彈出。棧深度是在一次計算中會用到的棧空間的最大值。 對於快速排序,假設數組參數的傳遞是用指針來指示的,因此每次過程調用只須要O(1)的棧空間。 去除尾遞歸的快速排序僞代碼以下:web
相關文章
相關標籤/搜索