交换两数算法总结
来源:互联网 发布:奥巴马医改 知乎 编辑:程序博客网 时间:2024/05/04 04:31
交换两数的方法大概结共有两种
一种需要第三变量,一种不需要第三变量(总结出三种)
1、需要第三变量
只能用指针实现
void swap(Int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
2、
00)用加法来实现
void swap(int *a, int *b)
{ //这个仔细看下即可明白
*a = *a + *b;
*b = *a -*b;
*a = *a - *b;
}
01)用乘除法实现
void swap(int *a, int *b)
{ //这个仔细看下即可明白
*a = *a * *b;
*b = *a / *b;
*a = *a / *b;
}
02)用异或运算符实现
//简单分析:
a = a^b,而a^a=0,a^0=a;
所以要求b =a ,只要a^b^b即可(上面a已变为a^b)
同理要使a = b,主要a^b^a即可,而通过上面运算,a=a^b,b=a,所以a=a^b
void swap(int *a, int *b)
{
*a = *a ^ *b;
*b =*b ^ *a;
*a = *a ^ *b;
}
或许还有其他方法,可以自己总结
- 交换两数算法总结
- 两数交换总结
- 最快的两数交换算法
- 多种算法实现两数交换
- 两数交换
- 两数交换
- 两数交换
- 两数交换
- 两数交换
- 两数交换
- 交换两数方法
- JavaSE 两数交换
- 两数交换
- 两数交换
- 【算法或技巧】两数交换--不用第三个数
- 无需中间变量的两数交换算法
- 经典算法——不用第三变量交换两数
- 不用局部变量实现C语言两数交换算法
- Centos让你的网站支持https
- Android 应用程序窗体显示状态操作(requestWindowFeature()的应用)
- 帮你深入理解OAuth2.0协
- 读取cookie中的中文乱码
- linux cpufreq 用法解析
- 交换两数算法总结
- UINavigationController使用详解
- 关于浏览器模式和文本模式的困惑
- Flash图表控件FusionCharts调整图表百分比大小
- 在JAVA中封装JSONUtils工具类及使用
- java 基本类型数据自增自减算法
- JSP常用内置对象
- how to using jira in eclipse
- unicode编码表