排序算法之选择排序(Java)
思路:先假设第一个数是最小值(arr[min]),然后循环整个数组
让 j 从第二个数开始循环,与arr[min]值进行比较
如果小于arr[min]值就与arr[min]值进行交换 i+1
j 的每次循环选出来剩余未排序数组中的一个最小值,排出来以后i+1
重复这个过程就可以依次把最小的值按照顺序排列出来
。。。。。。。。。。。。。。。。。。。。。。。。。。。
简单来说就是 0~N-1 范围内选一个最小的放到0位置
下一轮从 1~N-1 范围内选一个最小的放到1位置
public class 选择排序 {
public static void selectionSort(int[] arr) {
if(arr == null || arr.length<2){
return ;
}
//从第0位数字开始循环,一直到第length-1位
for(int i = 0 ; i < arr.length - 1;i++){
int min = i;
//循环数组判断min值和数组其他数的大小
for(int j = i + 1 ;j < arr.length ;j++){
min = arr[j] < arr[min] ? j : min;
}
swap(arr,i,min);
}
}
public static void swap(int[] arr,int i,int j) {
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
本内容均为个人学习使用
浙公网安备 33010602011771号