記一下幾種swap演算法,以後也方便檢視.
最初接觸和使用的一種要屬以下這種了:
int x = 10;
int y = 5;
int 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);
呵呵,覺得還不錯.至少對程式設計思路有所提公升了. 幾種swap演算法簡介
記一下幾種swap演算法,以後也方便檢視.最初接觸和使用的一種要屬以下這種了 int x 10 int y 5 int tmp tmp x x y y tmp system.out.println x x y y 這種方法最容易理解,也是最常用的.除了這個,以下的幾種方法覺得有些新鮮 第一種 利用加...
你會寫幾種swap函式?
swap函式估計是乙個各種各樣程式都會頻繁用到的子程式,可是你知道它究竟有多少種不同的寫法嗎?下面我就列舉我知道的幾種swap函式來跟大家分享一下。1 經典型 嫁衣法 無論是寫程式還是幹其他事情,一旦涉及到交換,就總是會遇到第三方。這個第三方可能是公正的監督者,也可能是乙個徒為他人做嫁衣的可憐蟲。在...
幾種 hive join 型別簡介
作為資料分析中經常進行的join 操作,傳統dbms 資料庫已經將各種演算法優化到了極致,而對於hadoop 使用的mapreduce 所進行的join 操作,去年開始也是有各種不同的算 文出現,討論各種演算法的適用場景和取捨條件,本文討論hive 中出現的幾種join 優化,然後討論其他演算法實現...