前奏
是相当于一种时间复杂度中的平方阶概念的数组排序算法
思路
思路:
1:创建2个循环一个外循环是循环长度-1次每循环依次比较出指定索引范围里最小值
2:获取当前外循环索引对应的值默认最小元素,然后与内循环中的(外循环索引+1)的索引比较
3:如果比较成功并本次循环比较结束后将获取到的最小元素和索引与当前外层对应的索引元素交换即可
课外仅供参考
如果与一组8000个数据的数组排序的情况下默认比较次数要31996000次 时间差不多30--70毫秒之间
如果与一组80000个数据的数组排序的情况下 时间差不多2秒到3秒之间
如果与一组800000个数据的数组排序的情况下 时间应该4分钟左右多
图解
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6e6c0608aa094079c988fe88c4383614.png)
代码 提示:如果将从小到大顺序变成从大到小顺序,改对应的将> 改成<
public static void selectSortVersion5(int [] sort){
int smallValue;
int smallIndex;
for(int index=0;index<sort.length-1;index++){
smallValue=sort[index];
smallIndex=index;
for(int index2=index+1;index2<sort.length;index2++){
if(smallValue>sort[index2]){
smallValue=sort[index2];
smallIndex=index2;
}
}
sort[smallIndex]=sort[index];
sort[index]=smallValue;
}
}