js sort()排序原理是什么?

js sort()排序原理是什么?是冒泡排序吗?
在sort的回调函数中打印或断点调试会进入多次,想知道sort()排序底层的一个原理

this.sortGoodsData.sort((goods1,goods2)=>{
       // 根据传入的key获取对应的value
        let v1=goods1[key],
        v2=goods2[key];
        // 对value进行对比
        // boolean 类型的值
        if(typeof v1==='boolean'){
         if(v1){
            return -1;
          }
        if(v2){
            return 1;
         }
        return 0;
        }
        // float类型值的处理(价格,销量)
        if(parseFloat(v1)>=parseFloat(v2)){
            return -1;
       }
        return 1;


});
阅读 3.5k
2 个回答

在 Chrome 70 以前,sort 的算法比较特殊:

  • 当元素个数小于 10 个的时候,使用插入排序;
  • 当元素个数大于 10 个的时候,使用快速排序。

众所周知:插入排序是稳定的,快速排序是并不稳定的。

从 Chrome 70 开始,V8 团队更新了排序算法,使用了 Timsort 算法。Timsort 排序算法是稳定的。

参考文章

推荐问题
宣传栏