【发布时间】:2017-12-14 03:35:35
【问题描述】:
在一个示例练习中,我要检查数组中的所有元素是否彼此相同。这个问题不是关于最有效的方法。相反,它是关于这两种解决方案的。
for(var i=0; i < set.length-1; i++)
{
if (set[i] != set[i+1]) // could have compared all elements to the firstelement instead of switching
{
isTrue=false;
}
}
上述算法将每个索引与之后的索引进行比较。
var firstIndex=set[0];
for(var i=0; i < set.length-1; i++)
{
if(set[i] != firstIndex)
{
isTrue=false;
}
}
虽然此算法将当前索引与第一个索引进行比较。尽管这些算法至少是 O(N)。比较的差异会影响时间/空间复杂度吗?
【问题讨论】:
-
如果条件是
i < set.length-1 && isTrue,这将有助于提高效率,因此它会在遇到第一个非重复项时停止。 -
我正在准备面试,我只是想了解如何根据给定的代码计算复杂度。无论哪种情况,大 O 都是线性的吗?
标签: javascript algorithm performance time-complexity