public class SwapAB { public static void main(String[] args) { // 两种值交换的方式,用中间变量空间复杂度高于不用中间变量,但时间复杂度要低于不用中间变量. // 常规写两个值的交换 int a = 100; int b = 200; System.out.println("初始值 a=100 b=200"); // 中间变量 int c; // 复制给中间变量,临时存 c = a; // 把b的值赋给a. a = b; // 把c中存的a的初始值赋给,至此完成了常规的值交换 b = c; System.out.println("a = " + a + ", b = " + b); // 不用中间变量的写法 a = a + b; b = a - b; a = a - b; System.out.println("a = " + a + ", b = " + b); // 第二种不用中间变量,换运算,效率比加法高点 a = a ^ b; b = a ^ b; a = a ^ b; System.out.println("a = " + a + ", b = " + b);
} }