【排序算法】选择排序
在无序数据中找到最小(最大)元素,放置到无序数组的起始位置
从剩余未排序的元素中寻找最小(最大)元素,放到无序数组的起始位置。
重复上述过程,直到所有元素有序。
一般默认待排序数组第一个为最小值,找待排序数组当中真正的最小值,找到真正的最小值和待排序数组的一个值进行交换,交换完成之后,真正的最小值到达正确位置。
时间复杂度:O(n^2)
import java.util.Arrays;
public class SelectSort {
public static void main(String[] args) {
int[] arr = {5,7,4,2,0,3,1,6};
sort(arr);
System.out.println(Arrays.toString(arr));
}
public static void sort(int[] arr) {
for(int i = 0;i<arr.length;i++) {
// 定义变量存储最小值
int min = arr[i];
// 定义变量存储最小值的下标
int pos = i;
for(int j = i ;j<arr.length;j++) {
if(arr[j]<min) {
min = arr[j];
pos = j;
}
}
// 真正的最小值和默认的最小值交换
arr[pos] = arr[i];
arr[i] = min;
}
}
}