最近看到swap的几种求法,所以总结下,便于以后查阅,其实思想差不多,都没有用到临时变量,“这种方式并没有性能上的优势,它仅仅是一个智力游戏”[深入理解计算机系统]
void swap1(int &a, int &b)
{
a = a + b;
b = a - b;
a = a - b;
}
void swap2(int &a, int &b)
{
b = a ^ b;
a = a ^ b;
b = a ^ b;
}
最近看到swap的几种求法,所以总结下,便于以后查阅,其实思想差不多,都没有用到临时变量,“这种方式并没有性能上的优势,它仅仅是一个智力游戏”[深入理解计算机系统]
void swap1(int &a, int &b)
{
a = a + b;
b = a - b;
a = a - b;
}
void swap2(int &a, int &b)
{
b = a ^ b;
a = a ^ b;
b = a ^ b;
}