話題15 異曲同工 交換變數的3種方式

2021-07-08 10:50:27 字數 1231 閱讀 7710

下面介紹2個變數交換的3種方式。

見**:

/**

* */

package huati15;

/** * @author vayne

* */

public class swaptest

/*** @param va

*/private static void swap(value va)

/*** @param i

* @param j

*/private static void swap(int i, int j)

}class value

}

執行結果:

577

5

形參的改變是不能反作用於實參的。但是可以通過引用來改變成員變數的值。

有的時候在不能引入第三個變數的前提下去交換2個變數的值,但是會產生溢位問題。可以使用下面的方法:

/**

* */

package huati15;

/** * @author vayne

* */

public class swaptest2

/*** @param i

* @param j

*/private static void swap2(value value)

}

執行結果:

7

5

這是利用2個數和的方法,我們同理也可以使用2個數差的方法。不再做介紹。

位異或運算子有這樣的性質:(x^y^y)=x。因此可以利用這個性質去交換變數,在這個過程中也沒有使用第三方變數。

**如下:

/**

* */

package huati15;

/** * @author vayne

* */

public class swaptest3

/*** @param i

* @param j

*/private static void swap3(value value)

}

結果:

10

5

這方法較好。不會產生溢位問題。

拼搏到底之龜兔賽跑 Day 15 螞蟻三部曲

這是一套三本的書,我很少買 很少買外國書,更不說是乙個法國作者的,關於螞蟻的書。但是,與書的緣份是很奇妙的。當時在書店裡,不知道出於什麼原因,就買了第一本 螞蟻 然後自然是無可抑制的把後面兩本買回來了。這是三本什麼書呢?首先它是 描寫人與螞蟻的 在故事的一開始,兩個世界並無關聯,兩個故事自然也各自平...