Skip to content

选择排序?

选择排序(Selection Sort)是一种简单的排序算法,它的基本思想是每次从未排序的数据中找出最小(或最大)元素,并将其放到已排序的数据的末尾。

选择排序的步骤如下:

  1. 从未排序的数据中找出最小(或最大)元素。
  2. 将最小(或最大)元素与当前元素交换位置。
  3. 将当前元素标记为已排序。
  4. 重复步骤 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),适合小规模数据排序

选择排序的缺点是:

  • 时间复杂度高,不适合大规模数据排序
  • 不稳定排序算法(如果两个元素相等,可能会交换它们的位置)

选择排序的应用场景:

  • 小规模数据排序
  • 需要简单易懂的排序算法
  • 不需要高效的排序算法

wangxiaoze | MIT License.