阵列长度检查速度

Array length checking speed

本文关键字:速度 检查 阵列      更新时间:2023-09-26

我离开了我的电脑,否则我会试一试:

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

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

对我来说,初步检查这些数组的长度是否相同,

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

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

如果我随身携带文档就好了。

让我澄清一下我的评论:假设出于某种原因您想在不检查其长度的情况下实现比较。 好的,这意味着我们需要遍历元素并检查它们是否相等,听起来很简单,对吧? 这就是它的样子(为了清楚起见,在这里使用 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

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

所以

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