import java.util.Arrays;
public class Selection {
public static void main(String[] args) {
// 定义一个数组
int [] arr = new int []{5,6,8,4,3,7};
SelectionSort(arr);
}
/**
* @Description选择排序
* @author caoyu Email:854704047@qq.com
* @version v1.0
* @date 2020年3月28日${time}
*/
public static void SelectionSort(int [] arr) {
for(int i = 0;i < arr.length - 1;i++){
int k = i;
for(int j = k + 1;j < arr.length;j++){
//将最小的元素的下标赋值给K
if(arr[k] > arr[j]){
k = j;
}
}
//判断是否当前就是最小值,如果是的话就不用再进行替换了
if(k != i){
int temp = arr[i];
arr[i] = arr[k];
arr[k] = temp;
}
}
//打印输出排序后的数组
System.out.println(Arrays.toString(arr));
}
}
注意点,记得里面的for循环会不断的比较改变k的值,所以交换数组元素值的步骤应该放在外层循环中来进行。
网友评论