首页  >  文章  >  Java  >  值交换的三种方式

值交换的三种方式

巴扎黑
巴扎黑原创
2016-12-02 09:37:261328浏览

package com.demo.algorithm.sort;
public class NumberSwap {
/**
* 通过中间值进行交换
* @param a
* @param b
*/
public static void swap1(int a,int b){
int tmp=a;
a=b;
b=tmp;
display(a, b);
}
/**
* 两数求和然后相减的方式进行交换,x、y过大有可能超出int的最大值
* @param a
* @param b
*/
public static void swap2(int a,int b){
a=a+b;
b=a-b;
a=a-b;
display(a, b);
}
/**
* 原理:一个数异或同一个数两次,结果还是那个数
* @param a
* @param b
*/
public static void swap3(int a,int b){
a=a^b;
b=a^b;//a^b^b
a=a^b;//a^b^a^b^b
display(a, b);
}
public static void display(int a,int b){
System.out.println("a="+a+",b="+b);
}
public static void main(String[] args) {
swap1(5, 8);
swap2(5, 8);
swap3(5, 8);
}
}


声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn