Java不借助第三变量实现两数交换的示例

目录

  • 基操
  • 进阶
  • 更进阶
  • PS:不借助第三个变量实现两个变量的交换(数字或者字符串)

基操 【Java不借助第三变量实现两数交换的示例】两数交换最简单最容易理解的就是借助第三变量
public void swapOne(){int a = 4; int b = 5; int c = a; a = b; b = c; System.out.println("a:"+a); //a:5System.out.println("b:"+b); //a:4}


进阶 利用数学计算
public void swapTwo(){int a = 4; int b = 5; a=a+b; b=a-b; a=a-b; System.out.println("a:"+a); //a:5System.out.println("b:"+b); //a:4}


更进阶 利用异或运算
public void swapThree(){int a = 4; int b = 5; a = a ^ b; // 0101 ^ 0100 ===> 0001,此时a的值为1b = a ^ b; // 0001 ^ 0100 ===> 0101,此时b的值为5a = a ^ b; // 0001 ^ 0101 ===> 0100,此时a的值为4System.out.println("a:"+a); //a:5System.out.println("b:"+b); //a:4}


PS:不借助第三个变量实现两个变量的交换(数字或者字符串)
//利用php spl标准类库中的栈数据结构,先进后出实现$a = 'abcde'; $b = 'efghi'; $stack = new SplStack(); $stack->push($a); $stack->push($b); $a = $stack->pop(); //efghi$b = $stack->pop(); //abcde//利用坐标轴上的两点距离数学计算 $a = 10; $b = 12; $a = $b - $a; $b = $b - $a; //10$a= $b + $a; //12//利用位运算中的^$a = 10; $b = 12; $a = $a ^ $b; $b = $b ^ $a; //10$a = $a ^ $b; //12

到此这篇关于Java不借助第三变量实现两数交换的示例的文章就介绍到这了,更多相关Java 两数交换 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    推荐阅读