我一直在尝试反转一个数组,首先是使用 push 并创建一个新数组,然后是使用解构和改变原始数组。
我想知道两者中哪一个跑得更快,为什么?
我一直在尝试反转一个数组,首先是使用 push 并创建一个新数组,然后是使用解构和改变原始数组。
我想知道两者中哪一个跑得更快,为什么?
假设您的意思是 push helper 方法通过迭代给定数组来创建一个新数组。使用此方法,您必须遍历整个数组才能反转它。时间复杂度为 O(n)。反转一个数组也需要 O(n) 时间,即使它只需要遍历数组的一半。这是因为 O(n/2) 可以简化为 O(n)。因此,时间复杂度是相同的,尽管严格来说,原地反转需要更少的时间。
假设您的代码已优化:
O(n^2)
, 2: O(n+1)
)。O(n)
, 2: O(n/2)
)。另请注意,也可以使用内置
Array.prototype.reverse()
方法。