gpt4 book ai didi

algorithm - O(m+n) 和 O(mn) 之间的区别?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:26:22 28 4
gpt4 key购买 nike

我试图通过不同的方法找出算法的复杂性。在数学上,我遇到了一种 O(m+n) 和另一种 O(mn) 方法。但是我无法理解或说形象化这一点。我看着他们并没有那种“啊!原来是这样”的感觉!有人可以使用他们自己的示例或任何其他工具来解释这一点吗?

最佳答案

O(m+n) 示例:

for(int i = 0, i < m, i++)
//code
for(int j = 0, j < n, j++)
//code

m 代码迭代发生。然后发生 n 次代码迭代。

O(mn) 示例:

for(int i = 0, i < m, i++)
for(int j = 0, j < n, j++)
//code

对于 m 的每次迭代,我们都有 n 代码迭代。想象一下迭代一个非正方形二维数组。

mn 不一定等于相同的值。如果它们确实 等于相同的值,则对于 O(m+n):

O(m+n) => O(m+m) => O(2m) => O(m)

我建议查看 this question/answer为了理解最后的转变。

对于O(mn):

O(mn) => O(mm) => O(m^2)

关于algorithm - O(m+n) 和 O(mn) 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23896399/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com