变量交换交换变量有很多种方法,一般分为两类,借助第三个变量和不借助第三个变量两种方式.对于ACMer 来说,下面的代码无疑是最优的。1 int main()2 {3 int a , b;4 cin >> a >> b;5 cout 2 3 int main() 4 { 5...
分类:
其他好文 时间:
2015-05-03 11:53:18
阅读次数:
153
一、描述
在不引入其它变量的情况下交换两个数,引入一个变量做中介,交换两个数的值。
二、源代码
package tong.yue.sort;
public class SwapTwoValues {
/**
* @param args
*/
public static void main(String[] args) {
int a = 10,b = 20;
swap...
分类:
编程语言 时间:
2015-04-18 23:47:24
阅读次数:
242
今天在看C语言的位运算时,看到了如下交换a,b两值的方法: a = a^b; b = a^b; a = a^b;后来想想,真是太神奇了!其实,我们首先知道,对于任意的x满足: x^x == 0; x^0 == x;那么上面的式子事实上是利用了如上的规则,首先用a保存了a^b的 值,再用b = a ^...
分类:
其他好文 时间:
2015-03-27 23:42:54
阅读次数:
158
在进行两个变量的时候,经常会看到有些书误人子弟的推荐使用异或的方式:
方式一
{
x = x ^ y;
y = x ^ y;
x = x ^ y;
}
而不是采用临时变量实现交换:
方式二
{
int temp;
temp = a;
a = b;
b = temp;
}
美其名曰:节省内存,提高运行速度。
临时变量交换的方式:
...
分类:
其他好文 时间:
2015-03-19 22:03:33
阅读次数:
94
第一种方法,大家会借助第三个变量来实现:如:C=A;A=B;B=C;这种方法需要借助第三变量来实现;第二种方法是利用加减法实现两个变量的交换,如:A=A+B;B=A-B;A=A-B;第三种方法是得用位异或运算来实现,也是效率最高的一种,在大量数据交换的时候,效率明显优于前两种方法,如:A=A^B;B...
分类:
其他好文 时间:
2015-03-19 21:49:37
阅读次数:
120
说道到交换两个变量值,很自然的想到,用第三方变量交换如下:#include int swap(int x,int y) { int a,b,temp; temp=a; a=b; b=temp; } int main() { swap(...
分类:
编程语言 时间:
2015-03-18 20:00:52
阅读次数:
133
位运算及其应用实例(1)摘要位运算是C/C++中的基本运算之一,即便是这样,它对大多数程序员来说是一个比较陌生的运算——大多数程序员很少使用位运算。本篇先简要介绍基本的位运算操作符及其用法(何时使用),然后介绍位运算符的几个典型应用:(1)三种不用临时变量交换两个整数的实例,并分析每个实例的优缺点(...
分类:
其他好文 时间:
2015-03-11 19:21:12
阅读次数:
171
交换两个变量(a和b)的值,最简单的办法是另定义一个变量(c),将a赋给c,然后调换。下面给出几种不使用第三个变量的办法:1.利用运算交换两个变量值a = b - a;b = b - a;a = b + a;2.位运算通过异或运算来交换值a=a^b; b=a^b; a=a^b;3.交换指针地址
分类:
其他好文 时间:
2015-03-10 18:52:32
阅读次数:
100
python中有一种赋值机制即多元赋值,采用这种方式赋值时,等号两边的对象都是元组并且元组的小括号是可选的。通常形式为x, y, z = 1, 2, 'a string'等同于(x, y, z) = (1, 2,'a string')这种赋值类型最经常用到的环境是变量交换,形如x, y = y, x...
分类:
其他好文 时间:
2015-03-05 21:00:34
阅读次数:
125
有两个变量a和b,不使用任何中间变量交换a和b。方法一:采用如下方法:a=a+b;b=a-b;a=a-b;这样做的缺点就是如果a、b都是比较大的数,则a=a+b时就会越界。而采用:a=a^b;b=a^b;a=a^b;无需担心越界的问题,这样就比较好。
分类:
其他好文 时间:
2015-03-02 18:48:09
阅读次数:
119