Algorithm 在设计复杂应用程序时,就地算法的意义是什么?

Algorithm 在设计复杂应用程序时,就地算法的意义是什么?,algorithm,in-place,Algorithm,In Place,我知道就地算法需要O(logn)或O(n)的恒定内存。但是在设计复杂的应用程序或系统时,人们应该如何考虑这个方面并将其实现为一个 建筑观点 如果有人能举例说明或给我指出正确的方向,那将非常有帮助。提前感谢。解决方案-如@Gene所述-我还可以从CLR书中推断-应用程序架构并不总是严重依赖于算法或其属性,但它们确实在较低级别上做出了重大贡献,如核心逻辑、协议、设计、处理,等等。复杂性取决于您想在适当的地方做什么。例如,对于排序,它是O(n log n)。主要的优点是,您不需要额外的内存,即O(1)

我知道就地算法需要O(logn)或O(n)的恒定内存。但是在设计复杂的应用程序或系统时,人们应该如何考虑这个方面并将其实现为一个 建筑观点


如果有人能举例说明或给我指出正确的方向,那将非常有帮助。提前感谢。

解决方案-如@Gene所述-我还可以从CLR书中推断-应用程序架构并不总是严重依赖于算法或其属性,但它们确实在较低级别上做出了重大贡献,如核心逻辑、协议、设计、处理,等等。

复杂性取决于您想在适当的地方做什么。例如,对于排序,它是O(n log n)。主要的优点是,您不需要额外的内存,即O(1)空间。就地算法用其输出覆盖其输入,这大概不会更大。在正常的字RAM机器模型中,通常只允许固定字数的就地算法。在像图灵机这样的位模型中,O(logn)是等价的。就位在系统架构中很少重要。更确切地说,这是一个影响系统成本的实现细节。主要的例外情况是,当数据太大,计算必须到位,以管理内存和/或通信成本,或满足固定的限制条件时。感谢@Gene的澄清。我还从CLR了解到,应用程序体系结构并不总是严重依赖于算法或其属性,但它们确实在较低级别上做出了重大贡献,如核心逻辑、协议、设计、处理等。@blastfull-感谢您的建议。我在这里有点新手。