JavaScript Array#sort()函数使用哪种算法?

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库的快速排序功能。

非数值数组使用合并排序。

在其他情况下,它使用选择排序。

这取决于将使用哪种算法对数组进行排序的数组元素的数据类型和大小。