const a = Array.apply(null, Array(50)).map((x, i) => i);
此数组将永远不会更改,它将始终包含50个元素。
a.includes(x)
(线性搜索)是O(n)还是O(50)或从技术上讲是O(50),但我们称它是O(n)
答案 0 :(得分:4)
不能为O(N),因为N表示存在某个影响运行时间的变量。由于数组始终是50个元素,因此它将始终循环播放50次,而不是循环可变的次数-因此该函数为O(50),我们通常将其简化为O(1)-,它表示所有恒定时间函数。
答案 1 :(得分:2)
Big-O表征功能。因此,答案是您可以选择。如果您定义的函数试图将其描述为“比较函数的最坏情况是n的数量,即元素数量”,那么答案就是O(n)。在您的情况下,n恰好是50,但是对于其他人,对于不同的n值解决了相同的问题,最坏情况下的运行时间将随输入大小线性变化。如果将其定义为“搜索固定长度数组的比较数”,则答案为O(1)。 O(50)与O(1)完全相同。