Javascript的array.reverse()
的工作原理是什麼?它是否通過並交換陣列的每個元素?如果是這樣,是否需要O(n)交換大小爲n的數組?Javascript的數組反轉
我想我問的原因是因爲我在想,如果array.reverse()
是一樣的:
for(var i = 0; i < a.length/2; i++) {
var holder = a[i];
a[i] = a[a.length - 1 - i];
a[a.length - 1 - i] = holder;
}
注意:很抱歉,如果Javascript代碼我張貼不正確,這是相當晚了現在。
編輯:固定a.length
至a.length/2
。
這是不正確的,因爲通過完整地遍歷數組,您將交換所有元素兩次並返回到原始數組。使用'a.length/2'(a.length和2的整數除法) – xanatos