排序算法之选择排序

概述

选择排序是一种简单直观的排序算法.

它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素, 存放在序列的起始位置,直到全部待排序的数据元素排完. 选择排序是不稳定的排序方法.

选择排序是从序列中选出最大或最小数, 将其放到最前面, 然后继续选择, 故而叫做选择排序, 个人理解.

以升序为例, 选择排序执行步骤如下:

  1. 暂定第一个元素为最小元素, 往后遍历, 逐个与最小元素比较, 找到最小元素, 若发现最小者, 与先前的"最小元素"交换位置. 达到更新最小元素的目的.
  2. 一趟遍历完成后, 能确保刚刚完成的这一趟遍历中, 最的小元素已经放置在前方了. 然后缩小排序范围, 新一趟排序从数组的第二个元素开始
  3. 在新一轮排序中重复第1、2步骤, 直到范围不能缩小为止, 排序完成
排序算法之选择排序

形象

其时间空间复杂度如下:

排序算法之选择排序

 

应该不难理解, 直接上代码了.

Java代码实现

排序算法之选择排序

 

代码也很简单, 不做过多解释了, 各位上眼.

原文地址:https://www.cnblogs.com/hujingnb/p/10181590.html