交换两个整数
来源:互联网 发布:中越战争伤亡对比知乎 编辑:程序博客网 时间:2024/05/18 18:42
今天写程序的时候回想起曾经好像在那见过没有使用中间变量进行两个整数的交换,马马虎虎地记得那时通过加减法来实现的,所以就查了一下资料,果然存在这这种方法,代码如下:
void swap1 (int& x,int& y){ x=x+y; y=x-y; x=x-y;}
void swap2 (int &x,int &y){ x=x-y; y=x+y; x=y-x;}
通过查找资料发现还有一种方法交换两个整数的方法,同样也是不使用中间变量,使用使用异或操作(相同位为0,不同位为1),代码如下:
void swap3 (int& x,int& y){ x ^= y; y ^= x; x ^= y;}
讨论了以上不同的情况的代码,下面将上述代码进行整理,使代码的跟完美:
void swap4 (int &x,int &y){ if(x==y) return ; if((x>0&&y>0)||(x<0&&y<0)) { x=x-y; y=x+y; x=y-x; } else { x=x+y; y=x-y; x=x-y; }}
void swap5 (int &x,int &y){ if(x==y) <span style="white-space:pre"></span>return; x^=y; y^=x; x^=y;}
0 0
- 实现两个整数交换
- Java - 交换两个整数
- 两个整数交换方法
- 交换两个整数
- 两个整数交换
- 不用temp交换两个整数
- 实现两个整数交换总结
- 交换两个整数的值
- 两个整数变量的交换
- 交换两个整数的值
- 两个整数的交换方法
- 交换两个整数的值
- 不用第三变量交换两个整数
- 【每天一个算法】一、交换两个整数
- 不使用临时变量交换两个整数
- 交换两个整数的值 Java_Note
- 分析交换两个整数的特殊写法
- 交换两个整数值,不用临时变量
- centos 常用命令
- 简单的html标签转义
- Servlet(二)servlet过滤器filter
- hadoop mapreduce核心功能描述
- 微软笔试题3:Demo Day
- 交换两个整数
- SDUT 3330----顺序表应用6:有序顺序表查询(二分查找)
- Android组件——使用DrawerLayout仿网易新闻v4.4侧滑菜单
- Word2013 插入代码块方法
- DOCKER源码分析(一):DOCKER架构
- Android开发——项目代码编写规范
- 深刻理解Python中的元类(metaclass)
- C++使用迭代器遍历数组
- 我的python学习之路