交换函数swap的三种实现方法

Posted Shihu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了交换函数swap的三种实现方法相关的知识,希望对你有一定的参考价值。

http://blog.csdn.net/GarfieldEr007/article/details/48314295

本文采用三种方式实现两个数之间的交换,分别是①借助辅助变量temp的swap函数,②采用加减法的swap函数 ,③使用异或运算的swap函数。

现在直奔主题:

1、借助辅助变量temp的swap函数

I、引用类型形参

 

[cpp] view plain copy
 
  1. void swap(int &a, int &b) //引用类型方式  
  2. {  
  3.     int temp; //辅助变量  
  4.     temp = a;  
  5.     a = b;  
  6.     b = temp;     
  7. }  

 

 

II、指针类型形参

 

 

[cpp] view plain copy
 
  1. void swap(int *a, int *b)  
  2. {  
  3.     int temp;  
  4.     temp = *a;  
  5.     *a = *b;  
  6.     *b = temp;    
  7. }  



 

2、采用加减法的swap函数

 

[cpp] view plain copy
 
  1. void swap(int &a, int &b)  
  2. {  
  3.     a = a + b;  
  4.     b = a - b;  
  5.     a = a - b;  
  6. }  

 

 

 

3、使用异或运算的swap函数

 

[cpp] view plain copy
 
    1. void swap(int &a, int &b)  
    2. {  
    3.     a = a ^ b;  
    4.     b = a ^ b;  
    5.     a = a ^ b;  
    6. }  

以上是关于交换函数swap的三种实现方法的主要内容,如果未能解决你的问题,请参考以下文章

交换俩数的三种方法

swap() 函数实现的方法

swap分区扩展的三种方法

函数的参数传递有三种方式

swap的实现(没有中间变量)

求一个C语言程序题:编写一个函数SWAP()实现交换两个数位置的功能