幾種SWAP算法
最初
int x = 10; int y = 5; int tmp; tmp = x; x = y; y = tmp; System.out.println("x: " + x + " y: " + y);
以下的幾種方法覺得有些新鮮:
第一種:利用加減法交換值.(對于Integer.MAX_VALUE和Integer.MIN_VALUE也可以準確的交換)
int x = 10; int y = 5; x = x + y; // x 15 y = x - y; // y 10 x = x - y; // x 5 System.out.println("x: " + x + " y: " + y);
第二種:利用異或運算交換值.
int x = 10; // x 0000 1010 int y = 5; // y 0000 0101 x = x ^ y; // x 0000 1111 y = x ^ y; // y 0000 1010 x = x ^ y; // x 0000 0101 System.out.println("x: " + x + " y: " + y);
第三種:利用表達式運算交換值.
int x = 10; int y = 5; x = y + 0 * (y = x); // 先將y參與運算,然后將x值賦給y,最后再將結果(也就是y)賦給x System.out.println("x: " + x + " y: " + y);
本文由用戶 yn6e 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!