欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-11 14:42:04
目录基操进阶更进阶ps:不借助第三个变量实现两个变量的交换(数字或者字符串)基操两数交换最简单最容易理解的就是借助第三变量 public void swapone(){ int a...

基操

两数交换最简单最容易理解的就是借助第三变量

    public void swapone(){
        int a = 4;
        int b = 5;
        int c = a;
        a = b;
        b = c;
        system.out.println("a:"+a); //a:5
        system.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:5
        system.out.println("b:"+b); //a:4
    }

更进阶

利用异或运算

    public void swapthree(){
        int a = 4;
        int b = 5;
        a = a ^ b; // 0101 ^ 0100 ===> 0001,此时a的值为1
        b = a ^ b; // 0001 ^ 0100 ===> 0101,此时b的值为5
        a = a ^ b; // 0001 ^ 0101 ===> 0100,此时a的值为4
        system.out.println("a:"+a); //a:5
        system.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 两数交换 内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

相关标签: Java 两数交换