Algorithm 阵列比较法的时间复杂度

Algorithm 阵列比较法的时间复杂度,algorithm,time-complexity,Algorithm,Time Complexity,我有一种方法,将一个一维数组与二维数组中的每一行进行比较,看它们是否相等。两个数组的列数相同。例如,{1,0}和{1,0},{1,1}-我将{1,0}与{1,0}比较,然后再与{1,1}比较。如果二维数组中有n行,两个数组中都有m列,那么时间复杂度是多少?是O(mn)吗?如果在任何特定指标上的元素不同,两个向量的比较可以提前解决。因此,除非数据分布非常不均匀,否则如果向量不同,则单个向量比较应为O(1),如果向量相等,则单个向量比较应为O(m)。因此,如果存在匹配项,则总体时间复杂度将为O(n+

我有一种方法,将一个一维数组与二维数组中的每一行进行比较,看它们是否相等。两个数组的列数相同。例如,{1,0}和{1,0},{1,1}-我将{1,0}与{1,0}比较,然后再与{1,1}比较。如果二维数组中有n行,两个数组中都有m列,那么时间复杂度是多少?是O(mn)吗?

如果在任何特定指标上的元素不同,两个向量的比较可以提前解决。因此,除非数据分布非常不均匀,否则如果向量不同,则单个向量比较应为
O(1)
,如果向量相等,则单个向量比较应为
O(m)
。因此,如果存在匹配项,则总体时间复杂度将为
O(n+m)
,如果没有匹配项,则总体时间复杂度将为
O(n)
。当然,这是平均值,最坏的情况是O(mn)。

一维数组中的每个条目与二维数组中的每个条目对比?那是O(嗯)。为什么是两个m?我在比较单维数组和多维数组中的相同列索引。啊。关于“每个条目”的声明并不清楚。将行向量(1D数组)与2D矩阵的每一行进行比较,然后?在这种情况下是O(mn)。是的,对不起。我本来可以说得更清楚的。你需要描述一下你所说的“比较数组”是什么意思。没有这些信息,我们无法回答这个问题。我们所知道的是,您将
O(m*比较数组的成本)
,因为您需要进行m次比较。假设您的“比较”是一个简单的“相同”检查(成本为
O(n)
),那么您的总成本为
O(mn)
。如果您的比较更复杂,比如“包含相同的元素但不一定以相同的顺序”检查(其成本为
O(n^2)
),那么您的成本将上升到
O(m*n^2)