简介
在本实验中,我们将探讨 JavaScript 中稳定排序的概念。稳定排序是一种在数组中元素值相同时保留其顺序的技术。我们将使用一个利用 Array.prototype.map() 和 Array.prototype.sort() 方法的函数来实现数组的稳定排序。
在本实验中,我们将探讨 JavaScript 中稳定排序的概念。稳定排序是一种在数组中元素值相同时保留其顺序的技术。我们将使用一个利用 Array.prototype.map() 和 Array.prototype.sort() 方法的函数来实现数组的稳定排序。
要对数组进行稳定排序并保留相同值元素的初始索引,请执行以下步骤:
node 开始练习编码。Array.prototype.map() 将输入数组的每个元素与其对应的索引配对。Array.prototype.sort() 以及一个 compare 函数对列表进行排序,同时在比较的元素相等时保留初始顺序。Array.prototype.map() 将数组元素转换回其初始形式。以下是 JavaScript 中 stableSort 函数的实现:
const stableSort = (arr, compare) =>
arr
.map((item, index) => ({ item, index }))
.sort((a, b) => compare(a.item, b.item) || a.index - b.index)
.map(({ item }) => item);
你可以使用一个数组和一个 compare 函数调用 stableSort 函数,以获得一个包含已排序列表的新数组,如下所示:
const arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const stable = stableSort(arr, () => 0); // [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
恭喜你!你已经完成了稳定排序实验。你可以在 LabEx 中练习更多实验来提升你的技能。