不使用中间变量交换a,b的值
- 变量交换a,b值得三种方式
- 使用临时变量进行交换
1 void swap1(int &a,int &b) 2 { 3 int temp=a; 4 a=b; 5 b=temp; 6 }
- 使用加减运算进行交换
1 void swap2(int &a,int &b) 2 { 3 a=a+b; 4 b=a-b; 5 a=a-b; 6 }
- 使用异或运算进行交换
void swap3(int &a,int &b) { a^=b; b^=a; a^=b; }
2.上述的三个swap()函数均为引用传参的方式
swap2(int &a,int &b)有可能会发生数据溢出的情况,相比较而言使用swap3()比较好