排序算法系列2-选择排序
Posted MissKein
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序算法系列2-选择排序相关的知识,希望对你有一定的参考价值。
-
属于 比较算法 [1] -
英文简写: SEL
关注、评论、转发
定义
给定 N 个项目和 L = 0 的数组,选择排序将:
-
在 [L ... N-1] 范围内找出最小项目 X 的位置, -
用第 L 项交换X -
将下限 L 增加1并重复步骤1直到 L = N-2。
我们也可以实现反向的选择排序:找到最大项目 Y 的位置并将其与最后一个项目交换。
// C++ 正向选择
void selectionSort(int a[], int N) {
for (int L = 0; L <= N-2; ++L) { // O(N)
int X = min_element(a+L, a+N) - a; // O(N)
swap(a[X], a[L]); // O(1), X 可能等于 L (无实际交换)
}
}
举个例子
以上是关于排序算法系列2-选择排序的主要内容,如果未能解决你的问题,请参考以下文章