美文网首页
js sort原理

js sort原理

作者: __越过山丘__ | 来源:发表于2019-01-24 20:22 被阅读0次

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

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

    sort使用方法:

    var arr=[];
    arr.sort();//默认排序
    arr.sort(comparefn(a,b));//自定义排序比较方法
    

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

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

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

    相关文章

      网友评论

          本文标题:js sort原理

          本文链接:https://www.haomeiwen.com/subject/uoiujqtx.html