您的位置:首页 > 职场人生

对两个变量的数据进行互换。不需要第三方变量。(Java知识点小面试)

2017-12-04 19:49 459 查看
首先定义两个变量

int a = 3,b = 5;

然后,问怎样不通过第三方变量进行数据互换?

变成a=5,b=3

方式一:

第一步: a = a + b; a = 8;

第二步: b = a - b;

b = 3;

第三步:a = a - b

a = 5;

方式二:

第一步:a = a^b; a = 8;

第二步:b = a ^ b; (把第一步结果带入第二步运算 即:b=a^b^b)

b=3

第三步:a = a ^ b; (把第二步结果带入第二步运算 即:a=a^b^a)

a=5

代码在此



从上面我们可以感受到方式二好难懂哟,随之而来的也有一种“不明绝厉”的感觉。

其实,方式二,就是那么6,不仅效率高而且非常高效和优雅。

因为方式二用到了异或运算,其运算方式直接以二进制的方式进行运算。故而效率高。

希望机智如你,面试回答出方式二的答案,让面试官对你的回答更满意。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: