- //1.中间变量法。最常用的交换方法。优点是稳定,不会出错。缺点是需要借助第三方变量,时空效率不高。
- void swap1(int& a,int& b)
- {
- int temp=a;
- a=b;
- b=temp;
- }
- //2.相互加减法。不用借助第三方变量,但是用到了加法,可能会溢出,谨慎使用。
- void swap2(int& a,int& b)
- {
- a=a+b;//可能会溢出
- b=a-b;
- a=a-b;
- }
- //3.异或法。加了一个判断条件,消除了bug,推荐使用。
- void swap3(int& a,int& b)
- {
- if(a^b)//如果不加这项,当不小心传入了同一个变量,就会把这个变量变成0
- a^=b,b^=a,a^=b;
- }
转载于:https://blog.51cto.com/lwxcy/930014