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;
}
}
*/