我们先来看看,我们在学习中,课本中,一般出现排序,都会让你新建一个变量来协助数值的交换,那么这样不就是浪费了资源,那么来看看其他方法
一般交换:
int a=2,b=1;
int tem=0;
tem=a;
a=b;
b=tem;
System.out.println("a:"+a+" b:"+b);
可以用异或运算来交换数值,这样减少了空间,但是速度是更加慢的,使用第三变量交换的效率是更高的:
好吧,先来了解下异或运算,大家都知道在计算机中,数据是用0,1 二进制来存储的 ,那么一个字节是8位,
比如: 1就是00000001 2就是00000010
00000001
00000010
异或就是a^a=0,a^0=a;那么0^0当然也是0了 ;以上异或 得到00000011;也就是3;
int a=2,b=1;
a=a^b;
b=a^b;
a=a^b;
还可以:
a=a+b;
b=a-b;
a=a-b;
值得一提的是,异或运算是比 加减快的;