package src;
public class SelectSort {
public static void swap1(int[] arr,int a,int b){
int temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
//因为是值拷贝,外面的数无法更新
// public static void swap2(int a,int b){
// int temp=a;
// a=b;
// b=temp;
// }
public static void swap3(int[] arr,int i ,int j){
if(i==j)return;//想同地址异或,数值会被变成0
arr[i]=arr[i]^arr[j];
arr[j]=arr[i]^arr[j];
arr[i]=arr[i]^arr[j];
}
public static void swap4(int[] arr,int i,int j){
if(i==j)return;
arr[i]=arr[i]+arr[j];
arr[j]=arr[i]-arr[j];
arr[i]=arr[i]-arr[j];
}
public static void Sort(int[] arr){
for (int i=0;i<arr.length;i++){
int min_index=i;
for (int j=i;j<arr.length;j++){
if(arr[min_index]>arr[j])min_index=j;
}
// swap1(arr,i,min_index);
// swap2(arr[i],arr[min_index]);
// swap3(arr,i,min_index);
swap4(arr,i,min_index);
}
}
public static void Print(int[] arr){
for ( int a:arr) {
System.out.println(a);
}
}
public static void main(String[] args) {
int[] arr=new int[]{5,8,6,7,2,4};
Print(arr);
System.out.println("******************");
Sort(arr);
Print(arr);
}
}