从头开始遍历,选择最小值与未排序部分的第一位交换位置。时间复杂度:
package section1;
import java.util.Arrays;
public class SelectionSort {
public static void selectionSort(int[] arr){
if(arr == null || arr.length < 2) return;
for (int i = 0; i < arr.length; i++){
int min = i;
for (int j = i + 1; j < arr.length; j++){
if (arr[j] < arr[min]) min = j;
}
change(arr, i, min);
System.out.println("no." + i + ":" + Arrays.toString(arr));
}
}
public static void change(int[] arr, int f1, int f2){
int flag;
flag = arr[f1];
arr[f1] = arr[f2];
arr[f2] = flag;
}
public static void main(String[] args){
int arr[] = {2, 3, 5, 23, 0, 124, 23, 25};
selectionSort(arr);
}
}