algorithm - i 以变量(不是 1 或 0)开始的 for 循环的时间复杂度

标签 algorithm for-loop time-complexity

我想知道 for 循环 for(i=m;i<=n;i++) 的时间复杂度,其中 m 和 n 都是变量。我认为它将是 O(n-m),因为循环取决于 m 和 n 的值。 请指导我!

最佳答案

解释

假设您的循环只执行以恒定时间运行的语句,即 O(1),您只需计算循环迭代次数即可。

你的循环头

 for (i = m; i <= n; i++)

将生成 imm + 1m + 2 的迭代m + 3, ... , n - 2, n - 1, n。所以从 mn,两端都包括在内。

正是 n - m + 1 次迭代(简单示例 23455 - 2 + 1 = 4)。

因此,渐近时间复杂度为

O(n - m + 1) = O(n - m)

就像你说的。

关于algorithm - i 以变量(不是 1 或 0)开始的 for 循环的时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61223094/

相关文章:

c++ - 如何压缩无符号字符的 C++ vector 以进行快速比较?无需减压

arrays - Bash for 在两个数组上循环

algorithm - 查找最小堆是否有 k 个小于查询的元素

java - 在没有概率的情况下渲染 Barnsley Fern 分形

algorithm - 聚类+回归——正确与否?

algorithm - 在图上寻找最便宜的路径,成本由使用节点的最大权重决定

for-loop - 与引用向量相比,将向量传递到 `for`循环是什么意思?

python - 使用列表理解对多个数组执行 cumsum

java - 当 a、b 或 c <= 1000 时,更快地找到所有毕达哥拉斯四元数

algorithm - 采访 : Find shortest path to few elements