【c】交换两个数字或值的各种算法实现

DATE: 2018.12.11


交换两个数字或值的各种算法实现主要有以下五种算法实现:

1、借助临时变量temp:

(1) 值传递方式:

int swap(int a, int b)
{
  int temp;
  temp = a;
  a = b;
  b = temp;
}

(2) 引用传递:

int swap(int &a , int &b)
{
  int temp = a;
  a = b;
  b = temp;
}

(3) 指针传递:

int  swap(int **a,int ** b)
{
  int* temp = *a;
  *a = *b;
  *b = temp;
}
2、不借助临时变量实现交换:

(1) 通过加法:

int swap(int a , int b)
{
  a =a + b;
  b = a - b;
  a = a - b;
}

(2) 通过异或:

int swap(int a, int b)
{
   a = a^b;
   b = b^a;
   a = a^b;
}

THE END!

原文地址:https://www.cnblogs.com/SoaringLee/p/10532213.html