常用算法之交換兩個數的值
來源:程序員人生 發(fā)布時間:2014-11-07 08:36:34 閱讀次數:2424次
交換兩個變量的值,古老的話題,下面把各種方法做個總結。
為了方便,先定義兩個變量。
int a = 1;
int b = 2;
1 借助臨時變量
1 交換變量值
int tmp;
tmp = a; // tmp = 1
a = b; // a = 2
b = tmp; // b = 1
2 交換地址
int *p;
p = &a; // tmp->1
a = &b; // a->2
b = p; // b ->1
2 不借助第3個變量
1 加減法
a = a + b // a = 3
b = a - b // b = 1
a = a - b // a = 2
2 乘除法
a = a * b // 2
b = a / b // 2
a = a / b // 1
3 異或法
// a:0000 0001
// b:0000 0010
a = a ^ b // a:0000 0011
b = a ^ b // b:0000 0001
a = a ^ b // a:0000 0010
對上面各種方法,中間變量需要額外的內存空間;
加減法和乘除法有可能出現(xiàn)越界,或被除數為0的情況,而且只適用于數字運算;
比較好的是最后1種,內存低層操作,通用的各種數據類型。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈