简介
在本实验中,我们将探索选择排序算法,并学习如何使用它在JavaScript中对数字数组进行排序。本实验旨在提供有关选择排序的实践经验,并帮助你了解其内部工作原理。在本实验结束时,你将对选择排序有扎实的理解,并能够将其应用于解决未来项目中的排序问题。
This tutorial is from open-source community. Access the source code
💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版
在本实验中,我们将探索选择排序算法,并学习如何使用它在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中练习更多实验来提升你的技能。