根据 Mozilla 文档:
无法保证排序的时间复杂度和空间复杂度
取决于实施。
至少可以安全地假设它不是O(n^2)
?有没有关于它如何实施的更详细的数据?谢谢。
火狐使用归并排序 https://medium.com/@nandodrw/merge-sort-javascript-and-ecmascript-2015-es6-30a30671da35。 Chrome 从版本 70 开始使用合并排序和插入排序的混合,称为Timsort https://v8.dev/blog/array-sort.
归并排序的时间复杂度为O(n log n)
。虽然规范没有指定要使用的排序算法,但在任何严重的环境中,您可能会期望对较大的数组进行排序不会花费比O(n log n)
(因为如果这样做,很容易更改为更快的算法,例如合并排序或其他一些对数线性方法)。
While 比较排序 https://www.nayuki.io/page/is-there-an-ideal-comparison-sort就像合并排序一样,其下界为O(n log n)
(即,它们至少需要这么长时间才能完成),Timsort 利用已排序数据的“运行”优势,因此具有下限O(n)
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)