互换函数(SWAP)是将两个数字进行互换,确保较小的数字在前,较大的数字在后,一般写法如下:
def swap(a, b):
if a > b:
return b, a
else:
return a, b
num1,num2 = swap(3,4)
num3,num4 = swap(5,4)
print(num1,num2)
print(num3,num4)
输出结果为:
3 4
4 5
如果不使用任何条件,我们是否能做到交换这两个整数,并使得较小的数在前面,较大的数在后面呢?
这并非日常使用的算法,但被证明这确实是可行的。编译器在代码优化过程中也使用了类似的技巧来节省更多的CPU时间。
def swap(x, y):
s = x < y
return x * s + y * (1 - s), y * s + x * (1 - s)