1
A
回答
6
快速排序是一种现场排序算法。除了递归调用的运行时栈上的空间外,它不使用任何内存。
+0
请记住,'qsort()'不需要使用Quicksort算法 - 尽管我认为大多数使用它的一些变体。 (例如,glibc的文档提到:“此库中qsort的实现可能不是就地排序并可能因此使用额外的内存来存储阵列”) –
1
2
它使用什么,它没有使用的是实现细节。该语言的规范不提供任何回答这个问题。
但是可以说的是,有没有理由为合理的qsort
实现使用动态内存。在qsort
中正确实施的递归计划永远不会要求递归深度大于给定平台上最大数组大小的log2
。这意味着,例如,在平面存储器平台上,递归深度不会超过平台的“位数”(例如,它在32位平台上不超过32位)。这又意味着qsort
很容易允许完全基于堆栈的实现。
相关问题
- 1. 存储使用的qsort
- 2. 点燃堆内存使用
- 3. luajit qsort回调示例内存泄漏
- 4. 红宝石使用堆栈进行内存管理吗?
- 5. 做node.js需要方法使用堆内存吗?
- 6. System.arraycopy是内存转移和堆使用的有效方法吗?
- 7. C++堆栈内存仍然有效吗?
- 8. 使用qsort()函数
- 9. findContours使内存堆错误
- 10. Java堆内存
- 11. 高效使用Java堆内存
- 12. 解决使用大堆内存不足
- 13. Wicket,页面堆栈和内存使用
- 14. glassfish使用的内存vs堆转储
- 15. Apache Felix Bundle堆内存使用监控
- 16. 使用fork共享堆内存()
- 17. Openssl的堆内存使用情况
- 18. Mule中的堆内存使用问题
- 19. 获取堆空间内存不足错误 - 如何使用java堆内存
- 20. qsort线程安全吗?
- 21. 内存中的堆栈实际上是一个堆栈吗?
- 22. .NET进程内存使用率= 5x CLR堆内存?
- 23. PS老代内存堆内存使用量:GC设置
- 24. 闪存堆堆内存配置和钨
- 25. 的qsort C++:用于调用 '的qsort'
- 26. 关于堆栈和堆栈内存使用的问题
- 27. 并行qsort使用openMP
- 28. 结构中使用qsort()
- 29. 堆内存溢出
- 30. 堆内存在MySQL
'std :: sort()'有什么问题? – jxh
也没关系。问题仍然存在。我不需要快速排序,只需要一个不使用堆内存的排序。 – Nicholas
为防万一您不知道,VC++附带了运行时库的源代码(大部分浮点例程除外),但您可能需要在安装/重新安装过程中检查某些方框以获取它。如果你想知道实施的细节,你通常可以很容易地找到答案。 –