コームソート
プログラミングの宝箱 アルゴリズムとデータ構造 (C magazine)のコームソートをRubyで。
class Array def comb_sort gap = self.size begin if 0 == (gap = gap * 10 / 13) gap = 1 end i = 0 has_sorted = false until (i + gap >= self.size) do if self.at(i) > self.at(i + gap) has_sorted = true tmp = self[i] self[i] = self[i + gap] self[i + gap] = tmp end i += 1 end end until ( gap < 1 or !has_sorted) return self end end p array = [30,55,5,309,9,114,3,6,34,24,24] p array.comb_sort