我刚开始学习大 O 符号,我正在尝试了解不同功能的大 O,看看哪个更好。
我正在努力计算以下代码的时间和空间复杂度。
function findCommonElem(arr1, arr2) {
let result = arr1.filter(x => arr2.includes(x));
console.log(result);
}
findCommonElem(arr1, arr2);
Run Code Online (Sandbox Code Playgroud)
据我了解,在这种情况下,常见的数组方法filter()通常有一个很大的 O O(n),这O(m+n)取决于每个数组的长度。但是,我可能是超级错误的。
有人可以解释一下吗?非常感谢!
额外问题:与对数组进行排序然后对同一函数使用 while 循环相比,哪一个被认为“更好”?