public class Selectsort {
public static void main(String[] args) {
int arr[] ={9,8,44,5,4};
System.out.println(Arrays.toString(arr));
selectsort(arr);
System.out.println(Arrays.toString(arr));
}
public static void selectsort(int arr[]){
if(arr==null||arr.length<2){
return ;
}else{
for(int i=0;i<arr.length-1;i++){
int min = i;
for(int j=i+1;j<=arr.length-1;j++){
if(arr[min]>arr[j]){
min = j;
}
}
swap(arr,min,i);//和谁交换,想想这个函数应该放在哪
}
}
}
public static void swap(int arr[],int min ,int j){
int i;
i = arr[min];
arr[min] = arr[j];
arr[j] = i;
}
}
swap函数用来交换数字给定两个索引的数的值,第一个for循环用来控制取数的次数,只用取arr.length-2次,因为到最后倒数第二个数时,最后一个数已经有序。第二个for循环从给定的i值开始循环依次与之后的每一个数来比较大小,直到数组的最后一个数,如果数字比定义的最小的数字小,将索引赋值给最小的那个,循环结束之后,交换两个数字的值。