2011-12-08 82 views
3

如果我有兩個陣列都具有10000項,現在我想將它們合併成一個陣列,所以我這樣做是與CONCAT:JavaScript的CONCAT運行時間

array1=array1.concat(array2); 

,但是否有任何身體知道什麼是運行時間?常數還是N?有沒有更好的方法來合併他們的速度。感謝您的任何提示。

+0

這有點令人困惑:「連接」和「合併」是與列表有關的兩個不同的事情。 – Pointy

+0

好吧..我想將兩個數組合併成一個,但是我們在javascript中使用concat,對嗎? – bingjie2680

+0

@ bingjie2680:我想不同之處在於「串聯」意味着簡單地將array2附加到array1,而「合併」可能意味着兩個數組的項目被某些邏輯(例如排序順序)穿插。你可能只是指這裏的連接。 – maerics

回答

4

我懷疑ECMAScript規範對任何操作都要求任何大的性能要求,所以它將取決於實現。驗證的唯一方法是編寫一個基準並將其運行到目標解釋器上。也就是說,我猜想大多數JavaScript解釋器都將數組實現爲向量類型數組而不是鏈接列表,因此在大多數引擎上,concat操作可能爲O(n)

+0

如果我想兩個數組是鏈表,你有什麼想法我可以在這種情況下實現它。 – bingjie2680

+0

@ bingjie2680你必須實現你自己的鏈表清單。換句話說,無法告訴JavaScript運行時如何使它的數組工作。 – Pointy

+0

好的,謝謝溫暖的幫助,夥計們。 – bingjie2680