Data structures 它是O(L1+;L2)还是O(max(L1,L2))?

Data structures 它是O(L1+;L2)还是O(max(L1,L2))?,data-structures,big-o,time-complexity,Data Structures,Big O,Time Complexity,我们有两个长度列表L1和L2。我们一个接一个地浏览了这两个列表。整体运营的时间复杂度是多少 是O(L1+L2)还是O(最大值(L1,L2))? 两者之间有什么区别?第一个O(L1+L2)是合适的。例如,在使用V表示顶点数、E表示边数的图算法中,许多操作都用O(V+E)表示,例如图的深度优先搜索。当然,在这种情况下,E的范围可以是O(V)到O(V^2)。如果L1和L2彼此固定,则O(max(L1,L2))=O(L1)或O(L2)可能更合适。第一个O(L1+L2)更合适。例如,在使用V表示顶点数、E

我们有两个长度列表L1和L2。我们一个接一个地浏览了这两个列表。整体运营的时间复杂度是多少

是O(L1+L2)还是O(最大值(L1,L2))?

两者之间有什么区别?

第一个O(L1+L2)是合适的。例如,在使用V表示顶点数、E表示边数的图算法中,许多操作都用O(V+E)表示,例如图的深度优先搜索。当然,在这种情况下,E的范围可以是O(V)到O(V^2)。如果L1和L2彼此固定,则O(max(L1,L2))=O(L1)或O(L2)可能更合适。

第一个O(L1+L2)更合适。例如,在使用V表示顶点数、E表示边数的图算法中,许多操作都用O(V+E)表示,例如图的深度优先搜索。当然,在这种情况下,E的范围可以是O(V)到O(V^2)。如果L1和L2彼此固定,那么O(max(L1,L2))=O(L1)或O(L2)可能更合适。

两者之间没有区别。在不丧失一般性的情况下,假设L1=O(L2);如果不是,那么L2=O(L1),您可以交换符号


O(L1+L2)=O(2*L2)=O(L2)。类似地,O(max(L1,L2))=O(L2)。因此,在这两种情况下,复杂性都是O(L2)。

两者之间没有区别。在不丧失一般性的情况下,假设L1=O(L2);如果不是,那么L2=O(L1),您可以交换符号


O(L1+L2)=O(2*L2)=O(L2)。类似地,O(max(L1,L2))=O(L2)。所以在这两种情况下,复杂性都是O(L2)。

@waldol1:L1=O(L2)或L2=O(L1),因为O仅表示渐近上界。这可能是真的,但我们不能假设L1和L2对称。正如我在回答中所说的,当遍历两个可变长度列表时,它们的长度可能不是相同的顺序,然后遍历这两个列表就会得到O(L1+L2)。或者在L1和L2的关系已知的情况下,一个O(L1)或O(L2)就足够了。@waldol1:L1=O(L2)或L2=O(L1),因为O只表示渐近上界。这可能是真的,但我们不能假设L1和L2对称。正如我在回答中所说的,当遍历两个可变长度列表时,它们的长度可能不是相同的顺序,然后遍历这两个列表就会得到O(L1+L2)。或者在L1和L2的关系已知的情况下,一个O(L1)或O(L2)就足够了。我也认为这是更合适的答案,因为我们不必假设L1和L2之间的任何关系。我也认为这是更合适的答案,因为我们不必假设L1和L2之间的任何关系