基本思想:选择排序在数组中不断的寻找到最小值(升序排列),然后将找到的值与指定的位置进行替换,即可看做将原数组分为两部分,一部分为有序的,另一部分为无序的,设置一个变量指向无序的第一位,每次遍历的时候只需要在无序的那部分查找最小值即可,直到最后排序成功,具体Java代码实现如下所示:
public class SelectSort {
/**
* 选择排序算法
*/
public void selectSort(int[] array){
int min;//记录最小值
int data;//交换两个值时候的中间变量
int index=0;//标记查找到的最小值的下标
for (int i=0;i<array.length-1;i++){
min=array[i];
for (int j=i;j<array.length;j++){
if (min>=array[j]){
min=array[j];
index=j;
}
}
data=array[index];
array[index]=array[i];
array[i]=data;
}
for (int d:array){
System.out.println(d);
}
}
public static void main(String[] args){
SelectSort selectSort=new SelectSort();
int[] arr=new int[]{0,6,8,5,4,11,36,25,46};
selectSort.selectSort(arr);
}
}