幾種swap演算法簡介

2021-05-22 12:11:57 字數 995 閱讀 4515

記一下幾種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 優化,然後討論其他演算法實現...