编辑代码

class Main {
	public static void main(String[] args) {
        int[] arr1 = {4, 5, 6, 3, 2, 1};
        int[] arr2 = {4, 4, 5, 6, 3, 2, 1};
        int[] arr3 = {4};
        int[] arr4 = {};
        selectionSort(arr1);
        selectionSort(arr2);
        selectionSort(arr3);
        selectionSort(arr4);
	}

    public static void selectionSort (int[] arr) {
        if (arr.length < 1){
            System.out.println("数组为空!");
            return;
        }
        System.out.print("====================\n排序前数组: ");
        printArr(arr);
        // 排序次数
        for (int i = 0; i < arr.length - 1; i++) {
            // 最小元素的索引
            int minIndex = i;
            // 寻找i后的最小元素
            for (int j = i + 1; j < arr.length; j++) {
                if (arr[j] < arr[minIndex]) {
                    minIndex = j;
                }
            }
            // 和i交换元素
            int temp = arr[i];
            arr[i] = arr[minIndex];
            arr[minIndex] = temp;
            System.out.print("\n第" + (i + 1) + "次排序:");
            printArr(arr);
        }
        System.out.print("\n排序后数组: ");
        printArr(arr);
        System.out.println("\n====================");
    }

    public static void printArr(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
    }
}