- java0602-交换算法
- 方法一:申请额外空间
- 方法二:利用加减法
- 方法三:异或运算
- 整合方法
方法一:申请额外空间交换a和b的值
public class Change1{
public static void main(String[] args){
int a = 5;
int b = 8;
int temp = 0;
temp = b;
b = a;
a = temp;
System.out.println(a);
System.out.println(b);
}
}
方法二:利用加减法
public class Change2{
public static void main(String[] args){
int a = 5;
int b = 8;
a = a + b;//5+8
b = a - b;//5+8-8=5
a = a - b;//5+8-5=8
System.out.println(a);
System.out.println(b);
}
}
方法三:异或运算
public class Change3{
public static void main(String[] args){
int a = 5;
int b = 8;
a = a ^ b;//5^8
b = a ^ b;//5^8^8=5
a = a ^ b;//5^8^5=8
System.out.println(a);
System.out.println(b);
}
}
整合方法
public class Change{
static int a = 5;
static int b = 8;
public static void main(String[] args){
Change.test1();
Change.test2();
Change.test3();
}
public static void test1(){
//方法一:申请额外空间
int temp = 0;
temp = b;
b = a;
a = temp;
System.out.println(a);
System.out.println(b);
}
public static void test2(){
//方法二:利用加减法
a = a + b;//5+8
b = a - b;//5+8-8=5
a = a - b;//5+8-5=8
System.out.println(a);
System.out.println(b);
}
public static void test3(){
//方法三:异或运算
a = a ^ b;//5^8
b = a ^ b;//5^8^8=5
a = a ^ b;//5^8^5=8
System.out.println(a);
System.out.println(b);
}
}



