工作生活

Array.sort

2019-06-29  本文已影响0人  anddju

数组排序函数,经常使用。(抱歉,我没用过,如果你不问,我是想不到排序用这个函数的 。工作中用到数组排序函数时,都是用封装好的排序函数)

不过。。为啥会想到这个函数,是因为群里一个人的面试题是对一个数组进行随机排序

实现方法:

aa.sort(()=>0.5-Math.random())
// 解释:  Math.random()生成0~1 的数, 0.5- 生成的这个数,只会有三种情况 (>0 , =0 , <0) 完成了随机排序功能

一句话说明

MDN链接

使用语法

arr.sort([compareFunction])

参数:

如果没有 compareFunction 参数,会将元素转为字符串去逐位比较 (9 在 80 之前),从小到大

aa.sort((a,b)=>a-b)  // 从小到大
返回值

一个数组,并且对原数组也执行了相应操作

v8 引擎代码

刚巧,这个函数的 v8的代码我看过一点,所以这里也就列出来了
github/v8/v8
从这个文件的第 712 行可以看到 For short (length <= 22) arrays, insertion sort is used for efficiency. ,也就是说,如果数组数量 小于23个,采用 插入排序的方式 如果 大于22个,会采用快速排序方式

上一篇 下一篇

猜你喜欢

热点阅读