排序原理:数组元素中从下标为0的元素依次与后面的元素进行比较,比较一轮之后,最小的元素将出现在第一个,也就是下标为0的元素。
选择排序原理图示:
选择排序代码图示:
基础版:
代码源码展示:
//选择排序
public static void main(String[] args) {
int[] arr= {23,15,29,18,14,19,22};
int index = 0;
//第一轮排序
for (int i = 1; i < arr.length; i++) {
if (arr[index]>arr[i]) {
int temp = arr[index];
arr[index] = arr[i];
arr[i]= temp;
}
}
//第二轮排序
index = 1;
for (int i = 1+index; i < arr.length; i++) {
if (arr[index]>arr[i]) {
int temp = arr[index];
arr[index] = arr[i];
arr[i]= temp;
}
}
//第三轮排序
index = 2;
for (int i = 1+index; i < arr.length; i++) {
if (arr[index]>arr[i]) {
int temp = arr[index];
arr[index] = arr[i];
arr[i]= temp;
}
}
//第四轮排序
index = 3;
for (int i = 1+index; i < arr.length; i++) {
if (arr[index]>arr[i]) {
int temp = arr[index];
arr[index] = arr[i];
arr[i]= temp;
}
}
//第五轮排序
index = 4;
for (int i = 1+index; i < arr.length; i++) {
if (arr[index]>arr[i]) {
int temp = arr[index];
arr[index] = arr[i];
arr[i]= temp;
}
}
//第六轮排序
index = 5;
for (int i = 1+index; i < arr.length; i++) {
if (arr[index]>arr[i]) {
int temp = arr[index];
arr[index] = arr[i];
arr[i]= temp;
}
}
System.out.println(Arrays.toString(arr));
}
增强版(代码少,逻辑强):
源码展示:
public static void main(String[] args) {
int[] arr= {23,15,29,18,14,19,22};
for (int index = 0; index < arr.length-1; index++) {//遍历数组下标
for (int i = 1 + index; i < arr.length; i++) {//定义两个数组的下标值进行比较
if (arr[index]>arr[i]) {//判断两个元素的大小
int temp = arr[index];//如果第一个元素大于第二个元素,那么将会使用该变量来存储第一个值
arr[index] = arr[i];//那么arr[index]就会存储arr[i]的值
arr[i]= temp;//最后temp中的值给到arr[i],其实就相当于两个值互换位置
}
}
}
System.out.println(Arrays.toString(arr));//调用数组工具类来打印arr中的元素
}
}



