class Day05_Demo2
{
public static void main(String[] args)
{
int[] arr={6,4,3,9,2,5};
System.out.print("排序前的顺序是");
printArray(arr);
selectSort(arr);
System.out.print("\n"+"排序后的顺序是");
printArray(arr);
}
//优化选择排序
/*
参数:要排序的数组
返回值:void
*/
public static void selectSort(int[] arr){
//对数组进行排序
for(int i=0;i<arr.length-1;i++){
int index=i;//用来记录最值的下标
for(int j=i+1;j<arr.length;j++){
if(arr[index]>arr[j]){
index=j; //让index一直记录的是最值的下标.
}
}
//将i位置上的元素与index位置上的元素进行交换
if(index!=i){ //如果当前要交换的元素的值正好在应该存在的位置,那么不需要进行交换
int temp=arr[i];
arr[i]=arr[index];
arr[index]=temp;
}
}
}
public static void printArray(int[] arr){
System.out.print("[");
for(int i=0;i<arr.length;i++){
if(i==arr.length-1){
System.out.print(arr[i]);
}else{
System.out.print(arr[i]+",");
}
}
System.out.print("]");
}
} |