编辑代码

class Main {
	public static void main(String[] args) {
        int[] arr = {5, 3, 6, 8, 11, 1, 7, 12, 9, 4, 2, 10};

        for ( int i = 0; i < arr.length-1; i++ ){
            int minPos = i;
            for ( int j = i+1; j < arr.length; j++ ){
                minPos = arr[j] < arr[minPos] ? j : minPos;
            }
            // changepos做分装
            changePos(arr, i, minPos);
        }
        //print做分装 之后可以直接拿来用
        print(arr);
	}

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

    static void changePos(int[] arr, int i, int minPos){
        int temp = arr[i];
            arr[i] = arr[minPos];
            arr[minPos] = temp;
    }
}






/* 
用minPos = arr[j] < arr[minPos] ? j : minPos;代替以下if语句
if ( arr[j] < arr[minPos] ){minPos = j;} 耗时更短

text
System.out.println("maxPos: " + maxPos + "; number: " + arr[maxPos]);
System.out.println("j= " + j);
*/




/*
class Main {
	public static void main(String[] args) {
        //最大值的操作
        int[] arr = {7, 12, 5, 1, 10, 11, 6, 4, 8, 2, 3, 9};  

        for ( int j = arr.length-1; j>0 ; j-- ){
            int maxPos = j;
            for ( int i = 0; i < j; i++ ){
                maxPos = arr[i] > arr[maxPos] ? i : maxPos;  
            }
            changePos(arr, j, maxPos);
        }
        print(arr);

        
	}

    // 输出数组
    static void print(int[] arr){
        for( int i=0; i < arr.length; i++ ){
            System.out.print(arr[i] + " ");
        }
    }

    // 交换位置
    static void changePos(int[] arr, int m, int n){
        int temp = arr[m];
            arr[m] = arr[n];
            arr[n] = temp;
    }
}

*/