JavaScript排序算法之间的差异

问题描述 投票:-1回答:1

有人知道这两种排序算法之间的区别吗?我相信Javascript在基本Array.prototype.sort()函数的幕后实现了MergeSort或QuickSort,但我不确定其他排序是做什么的,并且我会继续看到它。

const nums = [-9, -8, 1, 7, 3, 5, 2, 4]

const a = nums.sort((a,b) => (a - b))
const b = nums.sort()

console.log(a)
console.log(b)
javascript sorting comparison mergesort heapsort
1个回答
0
投票

传递给Array.prototype.sort的函数不是一个不同的排序算法,它是一个描述如何分辨项目A在项目B之前还是之后的函数。该算法使用该函数执行排序。

关于不提供任何功能时的默认行为-这是Mozilla's docs

如果未提供compareFunction,则通过将所有未定义的数组元素转换为字符串并按UTF-16代码单位顺序比较字符串来对它们进行排序。例如,“香蕉”位于“樱桃”之前。在数字排序中,9在80之前,但是由于数字被转换为字符串,因此按Unicode顺序,“ 80”在“ 9”之前。所有未定义的元素都排序到数组的末尾。

© www.soinside.com 2019 - 2024. All rights reserved.