两个变量值的交换方法
2015-10-06 11:30
246 查看
void swap1 (int & a, int &b)
//1.使用局部变量temp
{
int temp = a;
a = b;
b = temp;
}
//2.使用加减运算完成交换
void swap2 (int & a, int &b)
{
a = a +b;
b = a - b;
a = a - b;
}
//3.使用异或运算完成交换
void swap3 (int & a, int &b)
{
a ^ = b;
b ^ = a;
a ^ = b;
}
第一种交换是我们常见的值交换;第二种是采用简单的加减运算来交换,这种方式的缺点是会产生数据溢出;第三种采用了按位异或;推荐使用第三种方法;
//1.使用局部变量temp
{
int temp = a;
a = b;
b = temp;
}
//2.使用加减运算完成交换
void swap2 (int & a, int &b)
{
a = a +b;
b = a - b;
a = a - b;
}
//3.使用异或运算完成交换
void swap3 (int & a, int &b)
{
a ^ = b;
b ^ = a;
a ^ = b;
}
第一种交换是我们常见的值交换;第二种是采用简单的加减运算来交换,这种方式的缺点是会产生数据溢出;第三种采用了按位异或;推荐使用第三种方法;
相关文章推荐
- html5离线存储
- Eclipse web 项目转到myEclipse无法导出WAR包
- Sqlite-SQLiteHelper类,操作SQLite数据库
- React Native系列之-React.js介绍
- java将系列化后的对象保存在文件中,及反系列化 (ObjectInputStream,ObjectOutputStream)
- (日志,《算法导论》.7)快速排序,代码
- .NET-DataTable或DataSet转JSON
- JS实现三个层重叠点击互相切换的方法
- java自带线程池和队列详细讲解
- LeetCode Missing Number
- 输入输出重定向
- 读取外部存储的文件数据Environment.getExternalStorageDirectory()
- poj 3468 A Simple Problem with Integers (线段树区间更新 + 树状数组区间更新)
- 《程序员面试金典》--平衡二叉树的检测
- c++ for_each
- thinkphp学习笔记1
- ubuntu下C,C++,opencv cuda编程
- Android 在ScorllView中ListView和GridView冲突解决方案
- js中if判断表达式
- 安装了win10之后 再安装sql server 2008 r2提示不兼容