最近學習排序,對於快排,歸並等處理海量數據效率高的算法很鐘意,但是其自身的遞歸特性有很多缺點,譬如數據量過大時存在溢出的風險,也影響了算法的效率,故想到用棧代替遞歸這一過程。大致想法就是創建個函數指針類型的棧,然後將每個子排序的函數指針壓入其中,然後再一個一個用*解引用來運行函數。當然我知道改成非遞歸有別的方法,但是可能會比這復雜,就想考慮用棧來實現。我想知道的是,對於快排和歸並等遞歸排序算法,用以上方法實現的話,算法的開銷(時間復雜度和空間復雜度),以及實際效率會是如何,有實際意義麼。問題描述不全,畢竟第一次在CSDN提問,望前輩們多看看。本人大二,學了c++ java。
http://www.codeproject.com/Articles/418776/How-to-replace-recursive-functions-using-stack-and