小野マトペの業務日誌(アニメ制作してない篇)

はてなダイアリーの閉鎖をうけ、旧ブログ http://d.hatena.ne.jp/ono_matope/ から移行しました。続きは→ http://matope.hatenablog.com/

アルゴリズム小咄

今課題のコードを書いてて、ふと考えたんだけども、変数a,bの数を入れ替えるプログラムって、単純に

int temp;
temp=a;
a=b;
b=temp;

で片付くけどさ、これってもっと高速にならないのかなーと思って、このtempを削れないかなーと15分程頑張ってみた。

a=b-a;
b=b-a;
a=b+a;

うぉぅ、出来た!交換アルゴリズムから変数の宣言を排除出来たぞ!…しかしこれ、全体の計算量は増えてる気がしてならない。変数宣言が1つ減って加減算が3つ増えてる…。これ、どうなんでしょうね。まあ、何れにせよ、こんなアルゴリズム本読みゃ何処にでも載ってるだろうからどうでもいいですが。