algorithm - 你什么时候会在不使用第三个变量的情况下交换两个数字?

标签 algorithm coding-style swap

我读过一些讨论如何在不使用第三个变量的情况下交换两个数字的资源。以下是一些最相关的内容:

我理解为什么在大多数情况下使用所描述的方法没有意义:代码变得困惑且难以阅读,并且通常比使用第三个“临时”变量的解决方案执行得更慢。但是,我发现的所有问题都没有讨论双变量方法在实践中的任何好处。它们是否具有任何可取之处或好处(历史的或现代的),或者它们仅作为晦涩的编程琐事有用?

最佳答案

在这一点上,这只是一个巧妙的技巧。尽管您的编译器会识别正常 交换并适本地优化它(但不能保证它会识别奇怪的xoring 并适本地优化它),但速度明智的话。

关于algorithm - 你什么时候会在不使用第三个变量的情况下交换两个数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24921132/

相关文章:

c++ - 通过保留和复制,还是通过创建和交换来复制 vector 更有效?

c++ - 如何在保持最大值和最小值的同时更新线段树中的范围?

java - 声明一堆相似变量的最少行数

c - 如果在冒泡排序程序中输入偶数个整数,则在中间插入一个随机数

c++ - 使用引用或指针通过 xor 运算符交换两个变量的值

java - SharedPreferences 值继续返回为零 - 无法检索 'Data' 字符串的值

寻找坐标间最短路径的算法

algorithm - 如何证明有向无环图中至少存在一个入度为零的顶点?

c++ - c.vim c/c++ 插件把函数的返回值放在函数上面,可以吗?

java - 在哪里可以找到官方 Java 编码/样式标准?