我是一个U盘

一道面试题

1、不引入第三方变量,将两个值交换:
方法一:x=x+y;
y=x-y;
x=x-y;
缺点:x、y是大数据时,不行;
方法二:用异或(^相同为1,不同为0)
x=x^y;
y=x^y;//(x^y)^y=x
x=x^y;//(x^y)^(x^y^y)
两个不同的数两次异或等于本身(10^5^5=10);

posted on 2014-03-14 13:52  我是一个U盘  阅读(134)  评论(0)    收藏  举报

导航