Algorithm 什么时候是算法O(n+;m)时间?
我是在黑客级别上解决的。我解决这个问题的算法是:Algorithm 什么时候是算法O(n+;m)时间?,algorithm,time-complexity,big-o,asymptotic-complexity,Algorithm,Time Complexity,Big O,Asymptotic Complexity,我是在黑客级别上解决的。我解决这个问题的算法是: 获取所有玩家分数的数组。迭代所有玩家分数并创建一个新数组。让总共有n个玩家。 不包含任何重复的球员得分。让我们称之为新的 阵列,播放器核心 让Alice玩的总关卡是m 让爱丽丝在第一轮比赛后得分 让Alice的初始秩R为0 从后端开始迭代PlayerCores数组,直到得到分数小于S的玩家分数 将R设置为步骤5中找到的玩家的等级 将m减少1 打印R 现在开始处理Alice在循环中所有后续m-1级别的分数 将S设置为Alice的下一级分数 从排名为
不包含任何重复的球员得分。让我们称之为新的 阵列,播放器核心
加上以上两个因素,时间复杂度为O(n+n)=O(2n)=O(n)。而我的朋友声称这是O(n+m),尽管他无法充分解释。如果我对O(n+n)复杂性的表述有缺陷,有谁能帮助我理解同样的问题吗?
O(n+m)
不同于O(n+n)
或O(n)
当你不知道m
和n
之间的关系时。这可能是因为有时n
可能比m
大,而其他时间m
可能更大,但没有明确的方法来判断。然而,如果你总是知道无论怎样,n>=m
,你可以说O(n+m)
实际上是O(n)
。在这种情况下,同样的规则适用。O(n+m)
不同于O(n+n)
或O(n)
当您不知道m
和n
之间的关系时。这可能是因为有时n
可能比m
大,而其他时间m
可能更大,但没有明确的方法来判断。然而,如果你总是知道无论怎样,n>=m
,你可以说O(n+m)
实际上是O(n)
。在这种情况下,同样的规则也适用。我能够从相关人员那里获取响应。引用Ryan Fehr的话:
对于这个问题,O(n+n)和O(n+m)本质上是一样的,
因为它们都有相同的上限。我决定去看电影
O(n+m)表示,因为它确保
我的解决方案取决于它的级别数
在本例中由m表示
这种差异很重要的一个例子是当我们有
n(如10)的值较小,m(如10^5)的值较大。在这个
在这种情况下,对m的依赖性对于问题的复杂性非常重要
问题这也是将其表示为O(n+m)的问题,因为
如果在这种情况下m很小,而n很大,那么我们将再次看到a
我提供了对问题复杂性的错误陈述
符号
然而,Big-O表示法的优点是它代表了
所有情况下的最坏情况,因此O(n+n)的最坏情况与O(n+m)相同
因此它们是相当等价的。在这一点上,它只是一个
关于您希望如何表示对的依赖关系的偏好问题
m作为输入变量(如果您有这样的依赖项)
当然,如果您不依赖于m作为输入,那么我
认为O(n+n)=>O(n)是对
问题是我给了什么
我能从有关人员那里得到答复。引用Ryan Fehr的话: 对于这个问题,O(n+n)和O(n+m)本质上是一样的, 因为它们都有相同的上限。我决定去看电影 O(n+m)表示,因为它确保 我的解决方案取决于它的级别数 在本例中由m表示 这种差异很重要的一个例子是当我们有 n(如10)的值较小,m(如10^5)的值较大。在这个 在这种情况下,对m的依赖性对于问题的复杂性非常重要 问题这也是将其表示为O(n+m)的问题,因为 如果在这种情况下m很小,而n很大,那么我们将再次看到a 我提供了对问题复杂性的错误陈述 符号 然而,Big-O表示法的优点是它代表了 所有情况下的最坏情况,因此O(n+n)的最坏情况与O(n+m)相同 因此它们是相当等价的。在这一点上,它只是一个 关于您希望如何表示对的依赖关系的偏好问题 m作为输入变量(如果您有这样的依赖项) 当然,如果您不依赖于m作为输入,那么我 认为O(n+n)=>O(n)是对 问题是我给了什么
什么是“n”?什么是“m”?
9.2
是9
内部的嵌套循环,因此它不是这两个循环中的任何一个。此外,一些伪代码项不够清晰,无法确定它们的复杂性