企业网站备案怎么填写,东莞市场监督管理局官网,整站网站优化,网络推广的平台有哪些【奇淫技巧】两数交换 临时变量法#xff1a;借助中间变量加减法#xff1a;不使用中间变量异或法#xff1a;不使用中间变量语法糖#xff1a;某些编程语言支持交换语法糖借助函数#xff0c;不交换 前提#xff1a;待交换的两个元素#xff0c;分别用a,b表示#xf…【奇淫技巧】两数交换 临时变量法借助中间变量加减法不使用中间变量异或法不使用中间变量语法糖某些编程语言支持交换语法糖借助函数不交换 前提待交换的两个元素分别用a,b表示并且它们都是整数类型 临时变量法借助中间变量
优点适用于任何类型的两个元素整型浮点型字符串等缺点需要1个存储空间
let tmp a;
a b;
b tmp;加减法不使用中间变量
优点相比中间变量法节省存储空间缺点只能适用于特定类型数值类型如整型/浮点型有溢出的问题
a a b; // 此时 a 为两数之和
b a - b; // b a - b (ab)-b a;
a a - b; // a a - b (ab)-a b; 异或法不使用中间变量
优点不会溢出问题缺点只适用于整型
a a ^ b ; // a,b的对应bit不同的部分被标为1 0^1 1^0 1, 0^0 1^1 0
b a ^ b ; // 此时 a ^ b a
a a ^ b ; // 此时 a ^ b b语法糖某些编程语言支持交换语法糖
优点代码简洁只有一行缺点部分编程语言支持go/python/javascript,并不是所有语言都具备这样的语法糖
[a,b] [b,a];借助函数不交换
优点不需要做真正的交换适用于所有基本类型缺点需要创建一个函数返回交换后的数字
const swap (a,b)[b,a];