3 种交换int型数据的算法
来源:互联网 发布:java支付流程图 编辑:程序博客网 时间:2024/05/16 11:19
相信大家对于常规的利用第三方变量交换两个变量的值已经很熟悉了吧!今天我在这总结一下:
第一种,也是大家用的比较多的一种,同时也是最容易理解的一种:
(ps:对于新手来说很有可能忘记这儿必须传入地址,而不是传值)
void switch(int &a,int &b)//a=3,b=2
{
int c=a;//c=3,a=3
a=b;//a=2,b=2
b=c;//b=3,c=3
}
当然也可以用
void switch(int *a,int *b)//*a=3,*b=2
{
int c=*a;//c=3,a=3
*a=*b;//*a=2,*b=2
*b=c;//*b=3,*c=3
}
void switch(int &a,int &b)//a=3,b=2
{
a+=b;//a=5,b=2
b=a-b;//b=3,a=5;
a-=b;a=2,b=3
}
(ps:这个不方便记忆)
或者:
void switch(int &a,int &b)//a=3,b=2
{
a=a+b;//a=5,b=2
b=a-b;//b=3,a=5;
a=a-b;a=2,b=3
}
(ps:可以简记为:+--)
最后一种,也是最安全,最难理解的一种
void switch(int &a,int &b)//a=3,b=2
{
//利用二进制和位运算
a^=b;// a=0000 0011,b=0000 0010 a^b= 0000 0001 (a*)(现在a的值)
b^=a;//b=0000 0010 a=0000 0001 a^b=0000 0011(b*)
a^=b;//a=0000 0001 b=0000 0011 a^b=0000 0010(a*)
}
- 3 种交换int型数据的算法
- 实现两个int 型数据交换的三种方法
- 高效的交换两个int型数据
- int数据的奇偶位交换
- 交换两个int型变量的方法
- 交换数据的3种方法
- 数据交换算法比较
- 两个int值的交换
- 数据交换的特殊算法--经典面试题
- 大数据Java-交换变量的3种方式
- 请实现这两个变量数值的交换(比如int a = 10,int b = 20变成int a = 20,int b = 10),要求写3种或3种以上的实现方式
- 交换两个变量的值+int*[]与int(*)[]的辨析
- 交换排序的几种排序算法
- 交换算法的实现
- 两个数据交换的几种解法
- 两个数据交换的几种方式
- 交换两个数据的三种方法
- 四种交换数据的方式
- 编程巨星的唯一秘诀
- FutureTask 源码解析
- git中 .ignore文件的配置 忽略不想上传的文件
- shell脚本之条件语句if和分支语句case...esac【shell脚本的学习笔记三】
- 制作h5游戏心得
- 3 种交换int型数据的算法
- GitHub Android Libraries Top 100 简介
- android获取各类手机的闹钟广播
- 剑指offer代码解析——面试题22栈的压入、弹出序列
- R.java文件介绍
- C语言构建WEB管理系统(六):使用XMLHttpRequest对象和服务端交换数据
- 目前需要实践的东西
- 4.线程和进程
- 安装Yeoman + Bower + Grunt 创建angularjs 项目结构(新手笔记一)