排序算法系列2-选择排序

Posted MissKein

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序算法系列2-选择排序相关的知识,希望对你有一定的参考价值。


  • 属于  比较算法 [1]
  • 英文简写: SEL

关注、评论、转发

定义

给定 N 个项目和 L = 0 的数组,选择排序将:

  1. 在 [L ... N-1] 范围内找出最小项目 X 的位置,
  2. 用第 L 项交换X
  3. 将下限 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-选择排序的主要内容,如果未能解决你的问题,请参考以下文章

❤️死磕排序系列之 「 选择排序 」 ❤️ (建议排序)

排序算法系列1--简单排序(选择,冒泡,直接插入)

选择排序 —— 排序算法系列

排序系列 之 简单选择排序及其改进算法 —— Java实现

图解算法系列之选择排序

scratch 算法系列 1 选择排序