简介
在本实验中,我们将探索选择排序算法,并学习如何使用它在 JavaScript 中对数字数组进行排序。本实验旨在提供有关选择排序的实践经验,并帮助你了解其内部工作原理。在本实验结束时,你将对选择排序有扎实的理解,并能够将其应用于解决未来项目中的排序问题。
在本实验中,我们将探索选择排序算法,并学习如何使用它在 JavaScript 中对数字数组进行排序。本实验旨在提供有关选择排序的实践经验,并帮助你了解其内部工作原理。在本实验结束时,你将对选择排序有扎实的理解,并能够将其应用于解决未来项目中的排序问题。
要开始编码,请打开终端/SSH 并输入 node。
以下函数使用选择排序算法对数字数组进行排序:
const selectionSort = (arr) => {
const a = [...arr];
for (let i = 0; i < a.length; i++) {
const min = a
.slice(i + 1)
.reduce((acc, val, j) => (val < a[acc] ? j + i + 1 : acc), i);
if (min !== i) [a[i], a[min]] = [a[min], a[i]];
}
return a;
};
要使用此函数,将一个数字数组传递给 selectionSort(),如下所示:
selectionSort([5, 1, 4, 2, 3]); // [1, 2, 3, 4, 5]
该函数通过使用展开运算符 (...) 克隆原始数组来工作。然后,它使用 for 循环遍历数组。使用 Array.prototype.slice() 和 Array.prototype.reduce(),它在当前索引右侧的子数组中找到最小元素的索引。如有必要,它会进行交换。
恭喜你!你已经完成了选择排序实验。你可以在 LabEx 中练习更多实验来提升你的技能。