擅长:python、mysql、java
<p><strong>两者都具有O(n)</strong>的复杂度,n与while循环迭代有关。If-else语句不能改变这一点。想想看:当你的输入变量变为无穷大时,你的迭代计数是如何缩放的?线性的?立方?不然呢?在</p>
<p>例如,请检查以下伪代码:</p>
<pre><code>for(x time)
for(y time)
for(z time)
do ....
if(z=x+y)
</code></pre>
<p>我们有三次嵌套循环。所以复杂度是O(x*y*z),也就是O(n^3)。你不在乎条件,因为当变量变为无穷大时,迭代次数不会缩放。在</p>
<p>在决定复杂性时,通常应该检查嵌套循环,并检查哪些变量对迭代计数有重要意义。在</p>
<p>我还建议您阅读以下内容:<a href="https://www.cs.cmu.edu/~adamchik/15-121/lectures/Algorithmic%20Complexity/complexity.html" rel="nofollow">https://www.cs.cmu.edu/~adamchik/15-121/lectures/Algorithmic%20Complexity/complexity.html</a></p>
<p>毕竟这是一个很深的话题。在</p>