Fork me on GitHub

交换两个变量的值

两个变量值互换是基本的算法,在排序等算法中应用

法一:

已知:

  int a = 100;

  int b = 10;

交换两个变量值,使得a = 10,b = 100

错误代码:
  a = b;

  b = a;

正确代码:

  int c = a;

  a = b;

  b = c;

 

法二:

不借助第三个变量,仅在两个变量之间交换值。

(弊端:如果a、b的值过大到超过int的最大值,会损失精度)

  a = a + b;

  b = a - b;

  a = a - b;

 

法三:

不会有超出int的范围,从而损失精度的危险(其中^是位异或运算)

  a = a ^ b;

  b = a ^ b;

  a = a ^ b;

利用的思想原理是:一个数异或同一个数两次,结果还是那个数。

 

posted on 2019-04-28 22:04  Co3y  阅读(283)  评论(0编辑  收藏  举报

导航