讨论算法复杂性(内存占用,计算量多少)对计算机软件设计的影响
软件设计最好的就是时间和空间复杂度越小越好,特别是时间复杂度,很多情况下宁愿使用空间来换时间的。一个应用对于用户来说,不怎么会关心说你内存占用多了一些,但是一旦你的反应速度慢了,就0.5s来说很多情况下就是无法忍受的事情的。当然,太离谱的空间换时间也是不可取的,应为内存占用多了之后也会卡。
最好的就是常数时间常数空间,或者线性。如果时间复杂度是幂性,特别是幂大于2的情况在处理量比较大的情况下都要想办法用空间来换取时间的,需要将幂降下来,比如变成对数性的或者线性*对数性来保证性能。指数型一般都是不可取的,存在指数爆炸的可能性,复杂度大于指数的基本上在软件上面是无法存在的,这种的问题一般都需要超算了