Java不借助第三变量实现两数交换的示例
短信预约 -IT技能 免费直播动态提醒
基操
两数交换最简单最容易理解的就是借助第三变量
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 两数交换 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341