用于数据交换的算法分析(交换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;原理类似于“二”、
优点:
不需要产生额外的内存空间;
缺点:
理解很难,适用范围小;
专心看人间!
浙公网安备 33010602011771号