黑马程序员技术交流社区

标题: 大家看下这几种置换位置的方法有没有什么错误的? [打印本页]

作者: 龙腾浩少    时间: 2015-3-31 20:59
标题: 大家看下这几种置换位置的方法有没有什么错误的?
int a = 3, b = 8;
       
//交换两个数
1、利用第三方变量
int temp;
temp = a;
a = b;
b = temp;

//2、不利用第三方变量,利用算术运算符

b = b - a;
a = a + b;
b = a - b;

3、不利用第三方变量,利用算术运算符

a = a + b ; //如果a和b的值都非常大,容易超出int范围
b = a - b;
a = a - b;
               
4、不利用第三方变量,利用逻辑运算符

a = a ^ b;
b = a ^ b;//(a^b)^b        一个数异或同一个数两次,还是这个数
a = a ^ b;//(a^b)^((a^b)^b)

5、不利用第三方变量,利用算术运算符和赋值运算符
a = a + b -(b = a);

作者: Fruious    时间: 2015-3-31 21:05
顶顶顶顶顶顶顶顶顶顶顶顶顶顶
作者: hhh233    时间: 2015-3-31 21:13
貌似都没错, 一般用第一种就可以了,后面的可以记着 面试用吧
作者: 龙腾浩少    时间: 2015-3-31 21:21
hhh233 发表于 2015-3-31 21:13
貌似都没错, 一般用第一种就可以了,后面的可以记着 面试用吧

嗯,第一种是最容易想到的也是最常用的,其它的几种都有一定的技巧性,不说明的话,一下子看不懂!
面试可能会用到呢,呵呵:lol
作者: 大佛超东    时间: 2015-3-31 21:27
顶顶顶顶顶顶顶顶顶顶顶顶顶顶




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2