不用辅助变量交换两个数

  • A+
所属分类:算法与数据结构

不用辅助变量交换两个数

简单的加减

分析

代码第二行:y = (x+y)-y = x

第三行: x = (x+y)-x = y

位运算

分析

两个相同的数异或结果为0,任何数与0异或结果为自身。

第二行:y = (x^y)^y = x^(y^y) = x^0 = x

第三行:x = (x^y)^x = (x^x)^y = y

许龙涛

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: