performance - 计算嵌套for循环的时间复杂度

标签 performance algorithm big-o

我无法计算这些 for 循环的时间复杂度:

for(int i=0; i<len; i++){
    countOne++;
    for(int j=i/2; j<len; j++){
        countTwo++;
        for(int k=i/2; k<len; k++){
            countThree++;
        }
    }
}

我不明白如何计算 2 个最内层循环的时间复杂度。

最佳答案

这听起来像是一个大问题。但您应该在将来指定。

  • countOne 递增 len 次。
  • 对于每个 icountTwo 递增 len-i/2 次。 i 从 0 到 len-1,因此 countTwolen/2len 之间递增(或 O(len))次,每个 i,或总共 O(len2)。
  • countThree 的情况类似,它增加了 O(len3) 次。

因此整个算法的复杂度为O(len3)。

关于performance - 计算嵌套for循环的时间复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19342170/

相关文章:

MySQL 查询太慢,需要 500 多秒,还有其他建议吗

java - Java 中线程的不同操作需要多长时间?

sql - 为什么 Orchard 在执行内容项查询时这么慢?

java - Java 中 String.contains() 的大 O 是什么?

algorithm - 一个问题涵盖所有时间复杂度

complexity-theory - 了解大O

php - 用于评级系统的高效 MySQL 表结构

python - 单元测试设计

Java:两个列表之间的区别

c# - 复制加密算法