public class JianDanXuanZeSort {
public static int FindMinIndex(int[]a,int start){
int minIndex=start;
for(int i=start;i<a.length;i++){//找从起始位置到末尾的最小值的位置
if(a[i]<a[minIndex]){
minIndex=i;
}
}
return minIndex;
}
public static void SelectSort(int[]a){
for(int i=0;i<a.length;i++){//第一个位置开始,将较小的一个数与当前位置交换
int minIndex=FindMinIndex(a,i);//i为寻找最小数的起始位置
int temp=a[i];
a[i]=a[minIndex];
a[minIndex]=temp;
}
}
public static void main(String[] args) {
//测试
int []a={2,1,34,5,523,24,5,3,3,324,43};
SelectSort(a);
for(int t:a)System.out.println(t);
}
}
简单选择排序核心思想:选择当前位置(从第一个位置开始直到末尾),找到从当前位置到末尾中最小的一个数,将找到的最小数与当前位置交换时间复杂:O(n^2)适用场景:对于一些已经排好前面或后面部分的序列稳定性:不稳定,因为依次选取后面最小的和前面交换,前面的元素可能被交换到相同元素的后面java源码public class JianDanXuanZeSort { ...