选择排序
最简单的适合学习但是也是事实上不常使用的排序算法
本章学习重点
算法思想+代码实现
如何计算时间和空间复杂度
算法基本思想
一遍又一遍,找到数组里最小的数,与数组前面换位
下图为例
第一遍,遍历数组找到3号位的value(1)是最小的把1与0号位的5对调位置
第二遍,因为确认0号位的1已经是整个数组最小的,已经无需将他参加比较了,所以从1号位向后遍历,分别是4、2、5、3,找到位于2号位的value(2)是最小的与0号位对调
第三遍,剩下数组是4、5、3,找到4号位的3为最小,与2号位的4对调
第四遍,剩下数组是5、4,4最小与5对调
第五遍,数组只剩一个5,说明比对 完毕,排序完毕
分析一下
我们可以看到其实每次对调的都是有规律的,无论这个最小值是在哪,我们总得记住他
所以这里的重点就在,一个指针一直指着当前假设的最小值的下标
用最简单的算法来学习以后怎么写自己的算法题目
简单到复杂
验证一步走一步
多打印中间结果
局部到整体
没思路的时候先细分问题
粗糙到精细 
变量更名
语句合并
边界处理
算法实现
具体代码如下:
package algorithm.Day1;
public class SelectionSort {
public