三種交換變數的方法
交換變數
以下約定要交換的兩個變數為 x
, y
。
第三者交換法
定義第三個變數,用於交換兩個變數的值。
var tmp = x;
x = y;
y = x;
加法交換法
這種方法通過加法的運算來交換變數,但是要注意這種方法有侷限性
- 不能交換非數字型別的變數
- 對於浮點型別的變數可能會出現問題
- 加法過程中可能會出現超出上限的問題
x = x + y;
y = x - y;
x = x - y;
異或交換法
通過異或運算的性質得到的一種交換方法,這種交換方法有一定的侷限性
- 只能用於交換可以進行異或運算的資料型別
- 如果
x
,y
指向同一個記憶體地址,則異或交換法失效
x ⊕ y ⊕ y = x x\oplus y\oplus y=x x⊕y⊕y=x
x = x ^ y;
y = x ^ y;
x = x ^ y;
總結
綜上所述,第三者交換法應用場景最廣泛,異或次之,再者是加法交換法,應當根據不同場景分別使用。
相關文章
- 不用第三個變數,交換變數的值變數
- 數值變數交換常用方法變數
- c語言 - 交換兩個變數(不建立臨時變數)兩種方法C語言變數
- C語言交換兩個變數的值的5種基本方法C語言變數
- 交換兩個資料的三種方法
- js不使用第三個變數交換兩個變數的值JS變數
- 不用第三個變數,直接交換兩個變數的值變數
- 面試題-JavaScript交換兩個變數的方法面試題JavaScript變數
- 淺談Python變數賦值的三種方法!Python變數賦值
- php不用第三個變數,交換兩個數的值PHP變數
- 改變IP地址的三種方法
- java基礎變數的交換Java變數
- 交換兩個變數變數
- VMWARE 中 LINUX 於WINDOWS 交換檔案的三種方法薦LinuxWindows
- smarty中三種變數的訪問方式變數
- Swift交換兩個變數的值Swift變數
- 如何交換兩個變數的值變數
- 不使用臨時變數交換兩個變數的值變數
- 交換兩個整型變數變數
- PHP序列化變數的3種方法PHP變數
- 向檢視輸出變數的三種方式變數
- python 交換兩個變數的方式Python變數
- 理解兩種變數模型和三種傳參模式變數模型模式
- 如何不使用臨時變數,交換兩個變數的值。變數
- JavaScript判斷變數型別的四種方法JavaScript變數型別
- 前端基礎(二):變數宣告的6種方法前端變數
- Oracle獲取繫結變數的各種方法Oracle變數
- Oracle變數定義的三種方式(define,variable,declare)Oracle變數
- 記住Python變數型別的三種方式Python變數型別
- JavaScript兩個變數交換值(不使用臨時變數)JavaScript變數
- Python常用的四種數值交換方式!Python
- C++ 一種交換兩個數的思路C++
- Go:變數宣告的多種方法與預設值Go變數
- MAC 設定環境變數path的幾種方法Mac變數
- 三種方法實現:獲取 url 中的引數
- Python中檢查變數是否為整數5種方法Python變數
- 異或運算的巧用 → 不用額外的變數,如何交換兩個變數的值?變數
- 【RabbitMQ】三種型別交換器 Fanout,Direct,TopicMQ型別