这个函数的运行时复杂度是多少?

时间:2021-07-12 14:09:41

标签: javascript big-o

这是我第一次听说大 O,所以我一点都不清楚,就我个人而言,这是一个 O(n^2),因为它对每个对象使用过滤器,然后对每个对象都包含另一个数组的..

function subset(a, b) {
  const result = a.filter(a => b.includes(a));
  return (result.length == b.length) ? true : false;
}

const array1 = ["a", "b", "c", "d", "e", "f", "g"];

const array2 = ["a", "b", "e", "g", "e"];

const isSubset = subset(array1, array2);

console.log(isSubset);

1 个答案:

答案 0 :(得分:2)

array1.size = n

array2.size = m

如果我们把它翻译成伪代码:

for each object1 in array1.size:
   for each object2 in array2.size:
         object2.includes(object1)

所以复杂度是 O(n*m)。