我的算法的时间复杂度
time compexity of my algorithm
我在查找某些算法的 O-time 时遇到了问题。我搜索了很多 O 符号,但每当我的练习变得更难时,我找不到解决方案。现在我遇到了一个算法,但我真的找不到解决方案。
我搜索了 Stack Overflow,但没有找到真正帮助我的东西。我找到的最好的 post 是 this。
它只说了我所知道的,并没有真正说明如何计算或查看它。第二个 post 确实说了一些带有解决方案的算法,但没有说如何找到它。
代码
`for i = 1; i <= n; i++
for j = 1; j <= i; j++
for k = 1; k <= i; k++
x = x + 1
`
问题
这个算法的时间复杂度是多少?
另外,有什么好的教程可以帮助我更好地理解这件事吗?
如果有堆栈溢出也很抱歉post,但我找不到合适的帮助我。
- 定义
i
的循环运行 n
次。
- 定义
j
的循环运行 n * n/2
次
- 定义
k
的循环运行 n * n/2 * n/2
次
= n * 1/2 * n * 1/2 * n
= n * n * n * 1/2 * 1/2
= O(n^3)
你也可以尝试从变量x
的最终值来推断,它应该大致与n^3
成正比
我在查找某些算法的 O-time 时遇到了问题。我搜索了很多 O 符号,但每当我的练习变得更难时,我找不到解决方案。现在我遇到了一个算法,但我真的找不到解决方案。 我搜索了 Stack Overflow,但没有找到真正帮助我的东西。我找到的最好的 post 是 this。 它只说了我所知道的,并没有真正说明如何计算或查看它。第二个 post 确实说了一些带有解决方案的算法,但没有说如何找到它。
代码
`for i = 1; i <= n; i++
for j = 1; j <= i; j++
for k = 1; k <= i; k++
x = x + 1
`
问题
这个算法的时间复杂度是多少?
另外,有什么好的教程可以帮助我更好地理解这件事吗?
如果有堆栈溢出也很抱歉post,但我找不到合适的帮助我。
- 定义
i
的循环运行n
次。 - 定义
j
的循环运行n * n/2
次 - 定义
k
的循环运行n * n/2 * n/2
次
= n * 1/2 * n * 1/2 * n
= n * n * n * 1/2 * 1/2
= O(n^3)
你也可以尝试从变量x
的最终值来推断,它应该大致与n^3