JavaScript Array#sort() 函数使用哪种算法?
javascriptobject oriented programmingfront end technology
JavaScript 规范未指定在 Array.sort 实现中使用的特定算法。这留给实现者决定。因此,不同的 JS 引擎使用不同的排序算法。
Mozilla(Spider Monkey JS 引擎)使用 mergeSort。您可以在 Mozilla 存储库中看到用 C 语言编写的代码:https://dxr.mozilla.org/seamonkey/source/js/src/jsarray.c
WebKit(Chrome、Safari 等)不直接使用排序算法,而是根据元素类型和数组长度选择算法。例如,
数字数组使用 C++ Std 库的快速排序函数。
非数字数组使用合并排序。
在其他一些情况下,它使用选择排序。
使用哪种算法对数组进行排序取决于数组元素的数据类型和大小。