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