阵列长度检查速度

时间:2014-12-27 16:17:54

标签: javascript arrays performance

我远离我的电脑,否则我会放弃一下:

假设我们有一个任意长度的数组(比如5),每个索引按升序存储1到5的数字(即int [0] = 1等)。

然后假设我们从用户那里获取一个输入,一个可变长度的数组,存储变量整数。我想验证两个数组是否相同。

对我来说是否更快,初步检查这些数组的长度是否相同,然后检查它们的实际值,或者设置迭代循环系统,迭代两个数组并验证它们是否& #39;相同?数组长度只是实际结构中的一些存储变量吗?我的意思是,速度差异将是微小的,我只是想知道。目前使用javascript。

但我的想法一般是,如果数组长度是一个变量,那么最好先访问它并进行比较,如果不是更好的迭代,因为array.length操作仍会迭代通过用于计算数字的数组?

如果只有我的文件。

1 个答案:

答案 0 :(得分:0)

让我澄清一下我的评论:假设由于某种原因你想要在不检查其长度的情况下实施比较。好的,这意味着我们需要遍历元素并检查它们是否相等,听起来很简单吗?这就是它的样子(为了清楚起见,在这里使用Python,但这主要与语言无关):

def equal(arrayA, arrayB):
    for i in range(0, ???):
       if arrayA[i] != arrayB[i]:
           return False
    return True

但这是捕获,迭代什么时候停止? (???部分的内容是什么?)嗯,你必须在元素用尽之前停止,并且当你到达min(len(arrayA), len(arrayB))时就会发生这种情况。

唉,典型的min函数将如此实现:

def min(x, y):
    if x < y:
        return x
    else:
        return y

这意味着您需要进行比较<。好吧,如果你必须做一个比较,你也可以只对长度进行相等的比较,因为这在大多数架构上都是相同的成本。

所以结论是:你不能避免在数组的长度之间进行比较,所以你也可以利用这个机会检查它们是否相等。