我有一个方法可以将一个单维数组与二维数组中的每一行进行比较,看看它们是否相等。两个阵列都具有相同数量的列。例如,{1,0}和{{1,0},{1,1}} - 我会将{1,0}与{1,0}进行比较,然后再与{1,1}进行比较。如果二维数组中有n行,两个数组中有m列,那么时间复杂度会是多少?是O(mn)吗?
答案 0 :(得分:-1)
如果任何特定指数的元素不同,两个向量的比较可以提前挽救。因此,除非您的数据分布非常不均匀,否则如果向量不同,则单个向量比较应为O(1)
,如果向量相等则为O(m)
。因此,如果匹配则总时间复杂度为O(n + m)
,如果没有匹配则为O(n)
。平均而言,最坏的情况当然是O(mn)。