两值交换的优化,适用大部分语言(原创)

利用javaScript语言举个例子:java

var a = '111',b = '222'
a = a ^ b
b = a ^ b
a = a ^ b
console.log(a)    // '222'
console.log(b)    // '111'

'^'符号是js中的异或运算,大部分语言都有,不过表示的符号不必定同样,直接替换例子中便可;优化

因为异或运算属于更底层一些的操做,因此比起咱们平时声明多一个变量来交换两值的方法快很多;spa

如下是声明变量交换两值的方法:code

var a = '111',b = '222',c
c = a
a = b
b = c
console.log(a)   // '222'
console.log(b)   //  '111'

附:位运算中,除了异或运算有优化代码的效果以外,还有其余的一些,好比:shl运算。blog

a shl 1 等同于 a * 2,也由于是底层的运算,因此前者会比后者快,全部跟2的n次方相乘的运算均可以使用shl来代替ip

相关文章
相关标签/搜索