前几天看了一个哥们的博客,讨论不需要借助第三个变量来实现两个数字的互换,感觉确实不错。
假设有两个数字a=20,b=30;现在将a和b互换,通用的做法是声明第三个变量来做中间变量实现互换,还有一种做法是:
a=a+b;
b=a-b;
a=a-b;
这样确实是实现了两个数字的互换,有人说面向对象不够好,这个有待讨论;
a=a^b;
b=a^b;
a=a^b;
很简洁的算法,感觉很清晰。
前几天看了一个哥们的博客,讨论不需要借助第三个变量来实现两个数字的互换,感觉确实不错。
假设有两个数字a=20,b=30;现在将a和b互换,通用的做法是声明第三个变量来做中间变量实现互换,还有一种做法是:
a=a+b;
b=a-b;
a=a-b;
这样确实是实现了两个数字的互换,有人说面向对象不够好,这个有待讨论;
a=a^b;
b=a^b;
a=a^b;
很简洁的算法,感觉很清晰。
转载于:https://www.cnblogs.com/niusi/archive/2011/05/24/abswap.html