アルゴリズムの勉強開始

アルゴリスムイントロダクション改訂2版 第1巻数学的基礎とデータ構造 を読み始めました。
練習のため、出てきた擬似コードRubyで動くように書きかえました。
まずは第2章。16ページの挿入ソートです。
a[n] の中に具体的な非負整数値を入れてソートしてます。

a = [9, 2, 4, 6, 3, 5, 8, 7, 1, 0]
for j in 1..9
key = a[j]
i = j-1
while ((a[i] > key) && (i >= 0))
a[i+1] = a[i]
i = i-1
end
a[i + 1] = key
end
puts a

配列の中は0から始まるので、擬似コードとは2行目の数を1だけ変えてあります。これのおかげで20分くらい悩みました。comparison of Fixnum with nil failed (AugumentError)というのが出てきて、「nilと比較してるからダメだよー」と言われてるのはわかってたのですがどこにnilがあるのかと。結局a[10]が存在してないからダメだったのです。
あとそういえば、インデント使ってなかった。こんどから使います。