【问题标题】:runtime analysis (Time Complexity)运行时分析(时间复杂度)
【发布时间】:2019-03-13 19:13:30
【问题描述】:
for(i=0; i<n; i++) {
    if(i == x) {
        for(j=0; j<x; j++) {
            x++;
        }
        x *= 2;
    }
}

这个循环的运行时分析是什么?

【问题讨论】:

  • 你自己有什么想法吗?
  • 你怎么看?在寻求帮助之前先解释一下

标签: time runtime complexity-theory analysis


【解决方案1】:

在循环中

for(j=0; j<x; j++) {
    x++;
}

如果x 开始大于零,j 将始终小于x。这是因为每次增加 j 时都会增加 x。在具有任意精度整数算术的语言中,这将一直运行到您用完资源为止。在像 C 这样的语言中,这会导致未定义的行为。编译器可以优化j&lt;x 使其始终为真,或者它可以允许x 溢出到未定义(但可能是二进制补码)的结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-26
    • 2020-12-30
    • 2020-09-19
    相关资源
    最近更新 更多