/**
* 选择排序
* @Author xin
* @Date 2022/10/25 18:13
* @Version 1.0
*/
public class SelectionSort {
public static void swap(int[] array, int i, int j){
int temp = array[i];
array[i] = array[j];
array[j] = temp;
}
/**排序*/
public static void selectSort(int[] array) {
//首先考虑边界条件
if(array == null || array.length < 2) {
return;
}
for (int i = 0; i < array.length; i++) {
int minValueIndex = i; //假设当前循环数为最小数所在坐标
for (int j = i+1; j < array.length; j++) {
minValueIndex = array[j] < array[minValueIndex] ? j : minValueIndex;
}
//到这块第一次循环已经找到最小的值的坐标,交换我们开始定义的最小数与找到的最小数的位置。
swap(array,i,minValueIndex);
}
}
public static void main(String[] args) {
//给定一个数组
int[] array = {5,7,1,3,23,22,53,21,4,66,68,124,8};
PrintUtil.printIntArray(array); //5 7 1 3 23 22 53 21 4 66 68 124 8
selectSort(array);
PrintUtil.printIntArray(array); //1 3 4 5 7 8 21 22 23 53 66 68 124
System.out.println();
}
}
标签:minValueIndex,int,选择,66,array,排序,public
From: https://www.cnblogs.com/xinay/p/16848860.html