js sort原理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js sort原理相关的知识,希望对你有一定的参考价值。

参考技术A

js提供了sort方法,方便对数组进行排序,然而不同引擎对js的sort方法解析可能存在差异。本文基于v8引擎进行分析。

在v8引擎中,对sort方法提供了2种排序算法:插入排序及快排序。

sort使用方法:

当没有参数传入的时候,其排序顺序默认为,将待排序数据转换为字符串,并按照 Unicode 序列排序;当然,比较函数可以自定义,自定义排序函数需要返回值,其返回值为 -1,0,1 ,分别表示 a<b, a=b, a>b.

当数组长度小于等于10的时候,采用插入排序,大于10的时候,采用快排。
对于长度大于1000的数组,采用的是快排与插入排序混合的方式进行排序的,因为,当数据量很小的时候,插入排序效率优于快排。

快排的平均时间复杂度是nlogn,在排序算法中属于效率最高的。快排是一种不稳定的排序算法,但是一般情况下稳定或者不稳定对我们没有特别大的影响,但是对稳定性要求高的排序,就不能使用快排了。
原文: https://zhuanlan.zhihu.com/p/33626637

以上是关于js sort原理的主要内容,如果未能解决你的问题,请参考以下文章

JS中sort()方法原理及使用

关于Java中Array.sort()排序原理,越详细越好!

js中sort()方法的用法,参数以及排序原理

JS中sort()方法原理及使用

js数组的sort排序的原理和应用

js中sort()对数组排序的原理是啥?为何无法降序字母