导航

用于数据交换的算法分析(交换a和b)

一,利用中间变量交换两个数据

  代码展示: 

t=a;
a=b;
b=t;

  分析

 优点:

代码简单,容易理解;

 缺点:

此方法需要额外设置一个中间变量t,产生额外空间;

 

二,通过加法交换两个数据

  代码展示:

a=a+b;
b=a-b;
a=a-b;

  分析

通过将两个数相加获得a+b,然后减去b得到a赋值给b,最后用开始的a+b减去开始的a得到开始的b赋值给a;

 优点

不需要产生额外的内存空间;

 缺点

理解较难,适用范围小,主要适用于基本数据类型(除char外);

 

三,通过异或运算符交换两个数据

  代码展示:("^"表示异或符号)

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

  分析

两个数进行异或运算的结果(a^b)再与其中一个元素b进行异或运算则结果必定为a;原理类似于“二”、

 优点:

不需要产生额外的内存空间;

 缺点:

理解很难,适用范围小;

posted on 2021-01-30 21:31    阅读(421)  评论(0)    收藏  举报