问题是这样开始的
在作题的时候遇到了分析时间复杂度和空间复杂度的问题,也因此毫无保留地暴露了自己的弱智。
这个链接解释的很好理解(精华在这里,必看此链接!)
https://blog.csdn.net/zolalad/article/details/11848739
简单的总结一下,重点还是要看for循环由多少层 嵌套,如果外面是while循环,且while结束的时间跟n有关,或者说可以计算出一个次数的数值,也可以看作是一个for循环。
而且,Ο(log2n)、Ο(n)、 Ο(nlog2n)、Ο(n2)和Ο(n3)称为多项式时间,而Ο(2n)和Ο(n!)称为指数时间。对于一个规模是n的输入,在n^k的时间内得到结果,都是P问题。
最后我总结了问题规模n,对于一个问题往往有很多的确定量和不确定量,
如果这些量<10,可以认为问题规模就是10;
如果<100,可以认为问题规模就是100;
<1000,可以认为问题规模是1000。
比如52城的旅行商问题,我们可以认为i每次产生一个长度为52的序列,每一位上的数是哪个都不确定,不确定量是52个,那么这个问题的规模可以认为是100.