三种交换两个整数的方法

交换 int a, int b

 

1、最弱的方法

1 void swap(int &a,int &b)
2 {
3      int c = a;
4     a = b;
5     b = c;
6 }

 

 

2、不用另外开辟空间的方法

1 void swap(int &a,int &b)
2 {
3    a=a+b;
4    b=a-b;
5    a=a-b;
6 }

 

 

3、高效的位操作

 

1 void swap(int &a,int &b)
2 {
3     a=a ^b;
4     b =a^ b; //(=a^b^b=a^0=a)
5     a= a ^ b;  //(=a^b^a=a^a^b=0^b=b) 
6 }

 

posted @ 2015-01-29 08:18  小爷  阅读(279)  评论(0编辑  收藏  举报