幾種值交換的方法及利弊

2021-08-04 05:18:30 字數 628 閱讀 2622

幾種值交換的方法:

說到值交換,當值交換被封裝在乙個函式裡面的時候,大學教材上有一種較原始的方法,就是使用乙個中間變數並且使用值引用來達到交換的目的。但在這裡,可以get到另外的實現方法。

下面有三種:分別是中間變數-加減運算-異或運算

實現程式如下:

/*使用中間變數temp*/

void swap1(int &a,int &b)

/*使用加減運算*/

void swap2(int &a, int &b)

/*使用異或運算*/

void swap3(int &a, int &b)

第一種使用中間變數的方式是我們立即可以想到的,當被要求到不能使用中間變數的時候,後兩種就派上用場了。

第二種使用簡單的加減運算來實現交換目的,做運算的時候可能會面臨資料溢位的情況,因為在32位平台下,int佔4個位元組,其範圍是-2147483648---2147483648,故2147483648+1就變成了-2147483648,但在一定範圍內可以採用。

第三種採用按位異或的方式來實現交換目的,將參與運算的兩數各自對應的二進位制位進行異或運算,相同為0,不同為1,運算三次即可達到目的,相比於第二種方式,此種方式更好。

交換兩個變數的值的幾種方法

如果說解決 交換兩個變數的值 的問題也是演算法的話,這大概是程式世界中最簡單的演算法了。即使是這樣的演算法,也有幾種解決方法,下面來了解一下吧。1.利用中間變數temp作為臨時變數交換數值,這是變數交換最簡單最通用的方法。說這個演算法通用,是指其對資料型別沒有特殊要求,八種基本型別byte,shor...

數值交換的幾種方法

1 最簡單 最標準的一種方法,建立乙個臨時變數 int main 2 在不建立臨時變數的情況下交換兩個數的值 1 通過加減乘除的方法交換數值 define crt secure no warnings 1 include 交換兩個數的內容 int main 由於int定義整型變數,佔四個位元組。它定...

C語言和C 中幾種實現交換變數的值方法

先來看 交換兩個變數的值,容易聯想到 兩量交換借助中間變數 的方法。若用函式呼叫的方式來實現交換,沿用上述思路初步實現如下 include include include using namespace std void swap int m,int n intmain 結果如下 有沒有感到疑惑呢?...