【问题标题】:Time Complexity loop inside a loop with increased starting index具有增加的起始索引的循环内的时间复杂度循环
【发布时间】:2021-11-18 06:36:09
【问题描述】:

我知道时间复杂度问题的主要概念,但我总是陷入这些棘手的问题,谁能解释一下为什么答案是这个问题的思考过程。

同样在这种情况下,内循环的第一个索引每次迭代都乘以 3,如果内循环的起始索引保持不变并且每次迭代的步长乘以 3,这个问题的答案是什么

for j in range(1, (n**3) + 1, i * 3) :

【问题讨论】:

    标签: python time-complexity big-o computer-science


    【解决方案1】:

    这里的数学可能有误,但是...

    由于显而易见的原因,第一个循环是 O(n^6),但内循环不会显着增加复杂性,因为 n^3 = n^6/n^3 除了随着 i 的增加而缩短,使其成为 n^3/3。此外,在某些时候i*3 已经超过 n^3 并且内部循环甚至不会触发。

    所有这些似乎表明对复杂性的贡献可以忽略不计(在 Big-O 术语中),因此复杂性等于外循环的复杂性,因为 n 趋于无穷大。

    至于第二个问题,如果我没记错的话,保持起始索引不变会使复杂度增加 n^3 倍,因此 n^6 * n^3 = n^9。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-08
      • 2015-02-16
      • 1970-01-01
      • 1970-01-01
      • 2020-04-01
      相关资源
      最近更新 更多