一時変数を使わずにスワップ

Posted on Sunday, August 31st, 2014 21:10:36

同じ型の2つの変数の値を交換する際、通常は一時変数を用意して、以下のようなアルゴリズムで行います。

しかし、XOR交換アルゴリズムを用いれば一時変数なしでスワップできます。よく分からない場合はベン図を書いてみると良いでしょう。

また、加算と減算を用いることによってもスワップできます。

あんまり使う機会はないのですが、組み込み系等でわざわざ関数作ったりスタック使ったりしたくない場合に、こんな感じでプリプロセッサーで済ませるのもありかと思います。

ではでは。

Share

  • このエントリーをはてなブックマークに追加
  • Pocket
  • 0 follow us in feedly

Your Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です