选择排序是一种简单但有效的排序算法,它通过不断选择未排序部分中的最小元素,并将其放置在已排序部分的末尾,以达到排序整个数组的目的。尽管选择排序的效率不如其他高级排序算法,但它对于小规模数据集来说是一个不错的选择。
选择排序的原理很简单:遍历要排序的数组,每次选择未排序部分中的最小元素,并将其与未排序部分的第一个元素交换位置。通过这样的操作,每一轮循环都会将当前最小的元素移动到已排序部分的末尾。重复这个过程,直到整个数组按照升序排列。
选择排序算法的时间复杂度为 O(n^2),其中 n 是数组的长度。尽管它在大规模数据集上的效率不高,但对于小规模数据集来说依然是一个合理的选择。
下面是一个使用 JavaScript 实现的选择排序算法的示例代码:
function selectionSort(arr) {
const n = arr.length;
for (let i = 0; i < n - 1; i++) {
let minIndex = i;
// 在未排序部分中找到最小元素的索引
for (let j = i + 1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
// 将最小元素与未排序部分的第一个元素交换位置
[arr[i], arr[minIndex]] = [arr[minIndex], arr[i]];
}
return arr;
}
// 示例用法:
const numbers = [5, 3, 8, 4, 2];
const sortedNumbers = selectionSort(numbers);
console.log(sortedNumbers); // 输出:[2, 3, 4, 5, 8]