值交换的三种方式_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 值交换的三种方式

值交换的三种方式

 2016/11/29 5:32:08  sheungxin  程序员俱乐部  我要评论(0)
  • 摘要:packagecom.demo.algorithm.sort;publicclassNumberSwap{/***通过中间值进行交换*@parama*@paramb*/publicstaticvoidswap1(inta,intb){inttmp=a;a=b;b=tmp;display(a,b);}/***两数求和然后相减的方式进行交换,x、y过大有可能超出int的最大值*@parama*@paramb*/publicstaticvoidswap2(inta,intb){a=a+b;b=a-b
  • 标签:三种方式 方式
class="java" name="code">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);
	}
}
发表评论
用户名: 匿名