1
A
回答
6
快速排序是一種現場排序算法。除了遞歸調用的運行時棧上的空間外,它不使用任何內存。
+0
請記住,'qsort()'不需要使用Quicksort算法 - 儘管我認爲大多數使用它的一些變體。 (例如,glibc的文檔提到:「此庫中qsort的實現可能不是就地排序並可能因此使用額外的內存來存儲陣列」) –
1
2
它使用什麼,它沒有使用的是實現細節。該語言的規範不提供任何回答這個問題。
但是可以說的是,有沒有理由爲合理的qsort
實現使用動態內存。在qsort
中正確實施的遞歸計劃永遠不會要求遞歸深度大於給定平臺上最大數組大小的log2
。這意味着,例如,在平面存儲器平臺上,遞歸深度不會超過平臺的「位數」(例如,它在32位平臺上不超過32位)。這又意味着qsort
很容易允許完全基於堆棧的實現。
相關問題
- 1. 存儲使用的qsort
- 2. 點燃堆內存使用
- 3. luajit qsort回調示例內存泄漏
- 4. System.arraycopy是內存轉移和堆使用的有效方法嗎?
- 5. 紅寶石使用堆棧進行內存管理嗎?
- 6. 做node.js需要方法使用堆內存嗎?
- 7. C++堆棧內存仍然有效嗎?
- 8. 使用qsort()函數
- 9. findContours使內存堆錯誤
- 10. Java堆內存
- 11. qsort線程安全嗎?
- 12. 獲取堆空間內存不足錯誤 - 如何使用java堆內存
- 13. Java堆內存泄漏是否可能使用比堆+ permgen更多的內存?
- 14. Wicket,頁面堆棧和內存使用
- 15. 使用fork共享堆內存()
- 16. 高效使用Java堆內存
- 17. 解決使用大堆內存不足
- 18. Java堆內存使用增加
- 19. glassfish使用的內存vs堆轉儲
- 20. Openssl的堆內存使用情況
- 21. Java堆內存使用波動
- 22. Mule中的堆內存使用問題
- 23. 使用位圖的內存堆增長
- 24. Apache Felix Bundle堆內存使用監控
- 25. 內存中的堆棧實際上是一個堆棧嗎?
- 26. PS老代內存堆內存使用量:GC設置
- 27. .NET進程內存使用率= 5x CLR堆內存?
- 28. 閃存堆堆內存配置和鎢
- 29. 的qsort C++:用於調用 '的qsort'
- 30. 關於堆棧和堆棧內存使用的問題
'std :: sort()'有什麼問題? – jxh
也沒關係。問題仍然存在。我不需要快速排序,只需要一個不使用堆內存的排序。 – Nicholas
爲防萬一您不知道,VC++附帶了運行時庫的源代碼(大部分浮點例程除外),但您可能需要在安裝/重新安裝過程中檢查某些方框以獲取它。如果你想知道實施的細節,你通常可以很容易地找到答案。 –