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++ 标准库的快速排序函数。
非数字数组使用归并排序。
在其他一些情况下,它使用选择排序。
将使用哪种算法来对数组进行排序取决于数组元素的数据类型和大小。
广告