在提出这个问题的时候也查阅了一些资料,了解到 v8 里的 sort 在不同的数组长度下采用不同的排序方式。
这里暂且我们就只考虑很基础的排序方式,也就是数组长度小于10的时候。
const arr= [1,2,3,4];
arr.sort((a,b)=>
{return a-b}
)
我了解到此时的情况 sort 会采用插值排序,但是了解过插值排序的逻辑以后,并没有发现和 sort 回调函数 的返回值 a-b 有什么关系。
百思不得其解,特来请教。
在提出这个问题的时候也查阅了一些资料,了解到 v8 里的 sort 在不同的数组长度下采用不同的排序方式。
这里暂且我们就只考虑很基础的排序方式,也就是数组长度小于10的时候。
const arr= [1,2,3,4];
arr.sort((a,b)=>
{return a-b}
)
我了解到此时的情况 sort 会采用插值排序,但是了解过插值排序的逻辑以后,并没有发现和 sort 回调函数 的返回值 a-b 有什么关系。
百思不得其解,特来请教。
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答5.2k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
你可以试着手写一个
sort()
,大致就明白了: