Language agnostic 如何求嵌套for循环的时间复杂度
下面显示的嵌套循环的时间复杂度是多少: (一)Language agnostic 如何求嵌套for循环的时间复杂度,language-agnostic,big-o,time-complexity,Language Agnostic,Big O,Time Complexity,下面显示的嵌套循环的时间复杂度是多少: (一) for(int i=1;i对于一般情况,内循环有O(n),外循环有O(n)。因此,对于外循环的每次迭代,内循环迭代n次(c与复杂度顺序无关,应视为1)。如果外循环迭代n次,则内循环中的总迭代次数为n*n或O(n^2)。对于一般情况,内循环有O(n),外循环有O(n)。因此,对于外循环的每次迭代,内循环迭代n次(c的复杂度顺序无关紧要,应视为1)。如果外循环迭代n次,则内循环中的总迭代次数为n*n,或O(n^2)。假设有10张椅子(此处为n张) 在一
for(int i=1;i对于一般情况,内循环有O(n),外循环有O(n)。因此,对于外循环的每次迭代,内循环迭代n次(c与复杂度顺序无关,应视为1)。如果外循环迭代n次,则内循环中的总迭代次数为n*n或O(n^2)。对于一般情况,内循环有O(n),外循环有O(n)。因此,对于外循环的每次迭代,内循环迭代n次(c的复杂度顺序无关紧要,应视为1)。如果外循环迭代n次,则内循环中的总迭代次数为n*n,或O(n^2)。假设有10张椅子(此处为n张)
在一个for循环中,你迭代了所有的椅子,假设你坐在所有的椅子上,那么在给定的循环中,你总共需要坐10次才能坐在所有的椅子上
现在想象你坐在第一把椅子上,让你的朋友一把一把地坐在其他椅子上,包括你的椅子,所以你的朋友总共要坐10把椅子。
现在你选择了第二把椅子,再次请你的朋友坐在每把椅子上,所以他总共要坐10把椅子
同样地,你也可以选择第三、第四……把椅子,以此类推,所以你选择的每把椅子,你的朋友总共要坐10把椅子
10+10+…=100次
等于10^2=100
所以复杂性是O(n^2),其中n是椅子的数量。想象有10把椅子(这里是n)
在一个for循环中,你迭代了所有的椅子,假设你坐在所有的椅子上,那么在给定的循环中,你总共需要坐10次才能坐在所有的椅子上
现在想象你坐在第一把椅子上,让你的朋友一把一把地坐在其他椅子上,包括你的椅子,所以你的朋友总共要坐10把椅子。
现在你选择了第二把椅子,再次请你的朋友坐在每把椅子上,所以他总共要坐10把椅子
同样地,你也可以选择第三、第四……把椅子,以此类推,所以你选择的每把椅子,你的朋友总共要坐10把椅子
10+10+…=100次
等于10^2=100
因此,复杂度为O(n^2),其中n是椅子的数量。您的算法将执行(n/c)*(n/c)
迭代。我们进行除法,因为每次迭代跳过c
字符。请参见:
for (var i = 0; i <= n; i = i + 1)
将有n/2次
迭代
for (var i = 0; i <= n; i = i + 2)
*请注意,结果将被分解。也就是说,如果n=3
和c=2
,它将只执行一次(floor(3/2)==1
)
所以,我们可以把它概括为
(n / c)2
= (n2/c2)
= 1/c2 * n2
您的算法将执行(n/c)*(n/c)
迭代。我们正在分割,因为每次迭代跳过c
字符。请参见:
for (var i = 0; i <= n; i = i + 1)
将有n/2次
迭代
for (var i = 0; i <= n; i = i + 2)
*请注意,结果将被分解。也就是说,如果n=3
和c=2
,它将只执行一次(floor(3/2)==1
)
所以,我们可以把它概括为
(n / c)2
= (n2/c2)
= 1/c2 * n2