java基础算法
算法基础: 开始回顾下基础算法中的经典排序算法
选择排序是插入排序的一种
算法思想:选择排序在开始的时候,先扫描整个列表,以找到列表中的最小元素,然后将这个元素与第一个元素进行交换。这样最小元素就放到它的最终位置上。然后,从第二个元素开始扫描,找到n-1个元素中的最小元素,然后再与第二个元素进行交换。以此类推,直到第n-1个元素(如果前n-1个元素都已在最终位置,则最后一个元素也将在最终位置上)。
一、选择排序代码
public class 选择排序 {
/**
* @Description 从小到大
* 当前循环的号位,每次分别与其他位号的值比较,找出当前最小的值,然后交换位置
* 第0次[1, 5, 6, 3, 2, 4]
* 第1次[1, 2, 6, 3, 5, 4]
* 第2次[1, 2, 3, 6, 5, 4]
* 第3次[1, 2, 3, 4, 5, 6]
* 第4次[1, 2, 3, 4, 5, 6]
* 第5次[1, 2, 3, 4, 5, 6]
* @Author 寂寞旅行
* @Date 8:57 2022/2/26
* @Param [args]
**/
public static void main(String[] args) {
int[] arr = {4, 5, 6, 3, 2, 1};
for (int i = 0; i < arr.length; i++) {
int index = i;
int temp;
for (int j = i; j < arr.length; j++) {
if (arr[index] > arr[j]) {
index = j;
}
}
temp = arr[i];
arr[i] = arr[index];
arr[index] = temp;
System.out.println("第" + i + "次" + Arrays.toString(arr));
}
}
}
二、动画演示
总结
可以看到选择排序的核心思想是利用两层循环,外层循环控制第i个要交互的元素
内层循环首先比对i 到集合末尾中最小的一个,找到后与外层循环的i元素进行交互
也就说,每次执行,都会将把比i索引所在元素小,且最小的一个,移动到i位置,这样达到了排序效果