Algorithm 不同的参数如何影响时间复杂度的大O表示法
例如,如果我的方法中有两个参数M和N,并且时间复杂度是O(M+N),为什么人们说O(M+N)而不是O(N),这是从O(2N)简化而来的?什么时候我们应该在大O符号中使用多个变量?这背后有什么道理吗?传递给参数的不同变量会如何影响增长率,为什么不将它们组合成一个变量用于大O?我想不出一个实例,说明传入的不同变量和参数会影响运行时。我刚开始研究数据结构和算法,所以我想知道。时间复杂性表示运行时是如何随输入大小的变化而变化的 传递给方法的两个变量表示输入的大小,它们都是两个不同的维度 如果Algorithm 不同的参数如何影响时间复杂度的大O表示法,algorithm,time-complexity,runtime,big-o,computer-science,Algorithm,Time Complexity,Runtime,Big O,Computer Science,例如,如果我的方法中有两个参数M和N,并且时间复杂度是O(M+N),为什么人们说O(M+N)而不是O(N),这是从O(2N)简化而来的?什么时候我们应该在大O符号中使用多个变量?这背后有什么道理吗?传递给参数的不同变量会如何影响增长率,为什么不将它们组合成一个变量用于大O?我想不出一个实例,说明传入的不同变量和参数会影响运行时。我刚开始研究数据结构和算法,所以我想知道。时间复杂性表示运行时是如何随输入大小的变化而变化的 传递给方法的两个变量表示输入的大小,它们都是两个不同的维度 如果M>>>N,
M>>>N
,则O(M+N)
相当于O(M)
,如果N>>M
,则O(M+N)
相当于O(N)
只有当M~N
时,我们才能组合M
和N
,即时间复杂度=O(2*N)
或O(2*M)
,这相当于O(N)
或O(M)
否则,
O(M+N)
是一种精确的表示时间复杂度的方法,它在M
和N
的约束条件下考虑了上述三种情况。老实说,大O符号是一种近似值。因为O(N*N+N)被认为是O(N*N)。然而,一个标准规则是,一个算法的整体大O表示法相当于它的最慢部分
范例
如果一个算法是O(N+logN)复杂度,那么它必须被写成O(N)复杂度。因此,在这种情况下,我们有两个不同变量的输入大小,可以表示两个不同的大小,我们不能将它们组合成O(2N),因此它必须是O(M+N)?@plsdontbeangry Yes这两个变量是否会对时间复杂性的增长率产生不同的影响,因为这是我们进行O(M+N)的另一个原因?M的增长率可能比N的增长率更大,使我们做O(M+N),或者这不是为什么会这样的一个因素吗?