JavaScript Array#sort() 函式使用哪種演算法?


Javascript 規範沒有指定 Array.sort 實現中使用的特定演算法。這留給實現者決定。因此不同的 JS 引擎使用不同的排序演算法。

Mozilla(Spider Monkey JS 引擎)使用歸併排序。你可以在 Mozilla 儲存庫中看到用 C 編寫的程式碼:https://dxr.mozilla.org/seamonkey/source/js/src/jsarray.c

WebKit(Chrome、Safari 等)不直接使用排序演算法,而是根據元素型別和陣列長度選擇演算法。例如,

數字陣列使用 C++ 標準庫的快速排序函式。

非數字陣列使用歸併排序。

在其他一些情況下,它使用選擇排序。

將使用哪種演算法來對陣列進行排序取決於陣列元素的資料型別和大小。

更新日期: 2019-09-16

867 次瀏覽

開啟職業生涯歷程

透過完成課程來獲得認證

開始
廣告
© . All rights reserved.