我读过一些讨论如何在不使用第三个变量的情况下交换两个数字的资源。以下是一些最相关的内容:
- How do you swap two integer variables without using any if conditions, casting, or additional variables?
- Potential Problem in "Swapping values of two variables without using a third variable"
- Swap two integers without using a third variable
- http://www.geeksforgeeks.org/swap-two-numbers-without-using-temporary-variable/
我理解为什么在大多数情况下使用所描述的方法没有意义:代码变得困惑且难以阅读,并且通常比使用第三个“临时”变量的解决方案执行得更慢。但是,我发现的所有问题都没有讨论双变量方法在实践中的任何好处。它们是否具有任何可取之处或好处(历史的或现代的),或者它们仅作为晦涩的编程琐事有用?
最佳答案
在这一点上,这只是一个巧妙的技巧。尽管您的编译器会识别正常 交换并适本地优化它(但不能保证它会识别奇怪的xor
ing 并适本地优化它),但速度明智的话。
关于algorithm - 你什么时候会在不使用第三个变量的情况下交换两个数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24921132/