Time complexity 改变其索引的单个循环的复杂性
有人能解释一下如何评估以下代码的复杂性吗?考虑到Arayyof Ox SiZeN是由正随机数按升序构成的。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; }
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?