交換兩個變量的值


交換兩個變量的值,本質上就是交換兩個變量所對內存地址中的數據

實現該過程有多種算法,如中間變量法,算術運算法,按位異或法等等。


 

中間變量法

這種方法較為常見,並且適用於所有類型的變量交換。但是要分配一個臨時變量的空間。

 

優點:適用性強,適用面廣。

缺點:需要另外建立一個中間變量。

范圍:所有變量。

1 temp=a;
2 a=b;
3 b=temp;

 

交換思想就像是交換兩個碗里的水,比較符合我們日常生活經驗。


 

算術運算法

運用一系列算術運算交換變量,它不用創建一個空間來儲存臨時變量。

 

 

加減法

優點:不用臨時變量,方便理解記憶。

 

 

 

缺點:有數據溢出的風險,只適用於基本類型。

范圍:基本類型。

1 a=a+b;
2 b=a-b;
3 a=a-b;

 

 

 

 

例,a=5,b=6。

a=5+6

b=(5+6)-6

a=(5+6)-5

乘除法

 

 

優點:不用臨時變量。

缺點:有數據溢出的風險,只適用於浮點型數據。

范圍:浮點型數據。

1 a=a*b;
2 b=a/b;
3 a=a/b;

 

 

例,a=5,b=6。

a=5*6

b=(5*6)/6

a=(5*6)/5


 

按位異或法

該算法利用了一個數連續與另一個數異或兩次,就能還原的性質。

 

優點:不用臨時變量,無溢出風險。

缺點:太復雜,只適用於基本類型。

范圍:基本類型。

1 a=a^b;
2 b=a^b;
3 a=a^b;

例 a=0101

    b=0110

a=a^b=0011

a=a^b=0101

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM