今日はちょっと Cracking the Coding Interview を読み始めました。
VI Big O の章はmetrix、計算量がテーマですが、素人にコードを書かせると計算量を全く無視したコードを書いてきて驚くことがありますが、O(n) のような知識は大学に行けば最初に出てくる話です。多分。
ところで、次のコードはこの本に出てくる最小値、最大値を求めるプログラムなのですが、
int min = Integer.MAX_VALUE;
int max = integer MIN_VALUE;
for (int x : array) {
if (x < min) min = x;
if (x > max) max = x;
}
(p.41)
私ならこうは書きません。次のような感じになると思います。
int min = array[0]
int max = min
for (int x array) {
if (x < min) min = x
else if (x > max) max = x
}
インデントとか言語仕様はテキトーですが、古いプログラマーってこういうセコいのが好きなんです。O は変わらないんですけどね。あと、番兵とか使うのも好きです。まだ読み始めたばかりなので分りませんが、後の方で出てくるのでしょうか。
Cracking the Coding Interview: 189 Programming Questions and Solutions
Gayle Laakmann Mcdowell 著
Lightning Source Inc; 6版
ISBN: 978-0984782857