Archive for 12 月 19th, 2008

値の交換

金曜日, 12 月 19th, 2008

とりあえず息抜きに

値の交換をする時に一般的には交換の為の一時的な値の格納用に変数を一つ使って行います。

変数 temp を使って a と b の値を交換する

temp = a;

a = b;

b = a;

これが一般的で直感的にも理解しやすいですね。

しかし、余分な変数なんて使いたくないというひねくれもの人は次の方法を使う。

b ^= a;

a ^= b;

b ^= a;

排他的論理和の性質を利用する。

これってぱっと見はなんだ?と思うよね。

使い慣れている人とか熟練プログラマなら全然OKなんでしょうね。

他にも余分な変数を使わない方法があります。

しかし、私の好みのものは上記の二つですね。

あとは本当にひねくれてるやり方だと思うので省略(^^;

この他に素晴らしい交換方法があれば説明とともに教えていただきたいです。

Hatena タグ: