交换两个整数值的最佳方法是什么?

时间:2011-12-20 05:56:33

标签: performance integer

  

可能重复:
  What is the fastest way to swap values in C?

我需要交换两个整数的值(例如x和y) 这是最简单的方法:

int temp = x;
x = y;
y = temp;

我也找到了更好的方法:

x = x + y;
y = x - y;
x = x - y;

有没有更好的方法来提高性能?

2 个答案:

答案 0 :(得分:4)

可以使用 XOR ^ ”运算符:

  a = a^b;
  b = a^b;
  a = a^b;

答案 1 :(得分:1)

在第二个选项中,您在第一个选项中使用2个变量而不是3个,这意味着您可以分配更少的内存。