排序算法之选择排序
概述
选择排序是一种简单直观的排序算法.
它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素, 存放在序列的起始位置,直到全部待排序的数据元素排完. 选择排序是不稳定的排序方法.
选择排序是从序列中选出最大或最小数, 将其放到最前面, 然后继续选择, 故而叫做选择排序, 个人理解.
以升序为例, 选择排序执行步骤如下:
- 暂定第一个元素为最小元素, 往后遍历, 逐个与最小元素比较, 找到最小元素, 若发现最小者, 与先前的"最小元素"交换位置. 达到更新最小元素的目的.
- 一趟遍历完成后, 能确保刚刚完成的这一趟遍历中, 最的小元素已经放置在前方了. 然后缩小排序范围, 新一趟排序从数组的第二个元素开始
- 在新一轮排序中重复第1、2步骤, 直到范围不能缩小为止, 排序完成
形象
其时间空间复杂度如下:
应该不难理解, 直接上代码了.
Java代码实现
代码也很简单, 不做过多解释了, 各位上眼.