算法的空间复杂度和时间复杂度哪个更重要呢

通常我们在解决一个问题时都有多种方案,但是每个方案各有优劣,往往占用内存更高的,效率也更高,但是内存又很昂贵。面对时间复杂度和空间复杂度,如何抉择呢?

一般考虑算法的时候,更多的是指时间复杂度。其实现在内存这种计算资源相比于以前已经很廉价了。以前进行嵌入式开发一般用汇编,用C语言生成的代码往往更大,不利于嵌入式应用场景。但是,随着存储空间越来越多,使用C语言也没有什么不可以了。甚至现在有人直接用C++做嵌入式开发。
所以现在总体的趋势是,对空间复杂度的要求往往都不会太高,而对时间复杂度一般都会提出要求。所以一种常见的策略就是以空间换取时间。例如,将更多的程序运行的中间结果缓存在内存中,这样无疑比每次写入文件下次再从文件读取更有效率。
就我目前了解到的情况,一般在应聘面试时一般可能会对空间复杂度做出要求。例如,将一个数组反序输出,一种常见的方案是借助栈来实现。但是如果面试官规定不许利用额外的空间,那这种方式就不能用了。

请问楼主知道怎么计算空间复杂度吗?

时间复杂度和空间复杂度没法比较谁更重要,但是现在大多数时候都是以时间复杂度优先,由于(内存的扩大)空间确实成本更低,但是并不是绝对的,在嵌入式,微机系统等还是会考虑空间复杂度的,由于容量有限。

都重要,看具体场景,有的时候需要空间换时间,有的时候需要时间换空间