选择排序:
所谓选择排序,就是不断从剩下的元素中选择最小的元素放入前面,那么“前面”我们就从下标为 0(i=0) 的第一个元素开始(此时我们假设下标为 0 的元素是最小的,minIndex=0,minIndex 就是最小值的索引),相应的剩下的元素则从 (i+1) 的位置开始,也就是从 1 开始,然后依次与 minIndex 所对应值进行比较,如果比这个小则更新这个 minIndex 的值,最后将minIndex所对应的值与 i 的位置进行交换
public void sort(Comparable[] arr){
int n=arr.length;
for(int i = 0;i < n;i + +){ //从0开始
int minIndex = i; //第一次循环假设最小值的索引为0
for(int j =i+1;j < n;j++){ //后面的元素从 i的后一位开始
if(arr[minIndex].compareTo(arr[j])>0){ // 如果有更小的元素,更新这个最小索引
minIndex=j;
}
}
Comparable temp = arr[i]; //与元素为i的位置交换
arr[i]=arr[minIndex];
arr[minIndex]=temp;
}
}
选择排序可视化: