选择排序?
选择排序
(Selection Sort)是一种简单的排序算法,它的基本思想是每次从未排序的数据中找出最小(或最大)元素,并将其放到已排序的数据的末尾。
选择排序的步骤如下:
- 从未排序的数据中找出最小(或最大)元素。
- 将最小(或最大)元素与当前元素交换位置。
- 将当前元素标记为已排序。
- 重复步骤 1-3,直到整个数据被排序。
demo
代码
js
function selectionSort(data = []) {
for (let i = 0; i < data.length; i++) {
let min = i;
for (let j = i + 1; j < data.length; j++) {
if (data[min] > data[j]) {
min = j;
}
}
// let temp = data[i];
// data[i] = data[min];
// data[min] = temp;
// 简化
[data[i], data[min]] = [data[min], data[i]];
}
return data;
}
selectionSort([5, 2, 8, 3, 1, 6, 4]);
可视化
优缺点
选择排序的优点是:
- 简单易懂
- 实现容易
- 时间复杂度为 O(n^2),适合小规模数据排序
选择排序的缺点是:
- 时间复杂度高,不适合大规模数据排序
- 不稳定排序算法(如果两个元素相等,可能会交换它们的位置)
选择排序的应用场景:
- 小规模数据排序
- 需要简单易懂的排序算法
- 不需要高效的排序算法