![]() |
1
9
这个交换技巧有时是危险的,我看到一个错误的快速排序程序使用这个交换产生错误的结果。但通常的交换会产生正确的程序。 在速度方面,如果使用tmp变量,编译器有时会生成更快的代码。
使用
|
![]() |
2
10
或者把它分解成多个语句:
然而,它仍然是一种通常不好的变量交换方法——其他一些答案和注释已经充分解释了原因。 |
![]() |
3
3
见 http://en.wikipedia.org/wiki/Swap_(computer_science) . 使用临时变量会产生更多的开销,但比xor交换算法更稳定,并行计算使其比xor交换更快。 请参阅的第一个代码示例 http://www.ibm.com/developerworks/linux/library/l-metaprog1.html 使用临时变量进行交换的可靠实现。 |
![]() |
4
0
写一段人类读起来更快的代码。并且相信编译器在大多数情况下能够生成更好的代码。做一个分析看看这是不是唯一能提高速度的地方。然后应用上面多次列出的xor解决方案,它可能不适用于所有地方。 |
![]() |
5
-2
|
![]() |
Community wiki · C中有哪些耗时的操作? 1 年前 |
![]() |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
![]() |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
![]() |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |