Time complexity 改变其索引的单个循环的复杂性

Time complexity 改变其索引的单个循环的复杂性,time-complexity,complexity-theory,Time Complexity,Complexity Theory,有人能解释一下如何评估以下代码的复杂性吗?考虑到Arayyof Ox SiZeN是由正随机数按升序构成的。 for(i = 0; i < n; i++){ temp = array_of_size_n[i] + last if(temp > last){ do_something_else(temp); //doesn't change the complexity last = temp; i = 0; }

有人能解释一下如何评估以下代码的复杂性吗?考虑到Arayyof Ox SiZeN是由正随机数按升序构成的。

for(i = 0; i < n; i++){
    temp = array_of_size_n[i] + last

    if(temp > last){
        do_something_else(temp); //doesn't change the complexity
        last = temp;
        i = 0;
    }
}
(i=0;i{ temp=数组大小为[i]+最后一个 如果(温度>上次){ do_something_other(temp);//不会改变复杂性 最后=温度; i=0; } }
根据我的测试,增长与一个巨大的常数因子呈线性关系。 假设last在开始时为0。 它总是传递第一个值,因为i++在循环中。 因此,当它涉及到第二个值时,如果它是1,那么last将被添加到INT_MAX。然后if(temp>last)将永远为false,因此是线性的。
第二个值的大小将影响最后一次到达INT_MAX的速度。

如果数组中有一个正元素,迭代将永远无法通过它。无止境循环的时间复杂性是什么?对不起,我忘了提到这一部分。数组中没有负元素。我编辑了问题,添加了这些信息。谢谢它将如何通过i=1?