内部に転置インデックスを持つ検索エンジンクラスを作成中

Tsukasa OISHI

とりあえず一段落したところです。検索条件に合致するように、転置インデックスの積集合を計算します。
Rubyで集合演算といえばSetクラスですが、Setクラスは相当に遅くてぼくの求める性能には届きませんでした。転置インデックスは、Integerの集合であることがほとんどだと思いますので、そこは割り切って作ってみました。

100万までの間の3の倍数と5の倍数の積集合を求める

それぞれの集合の要素数
 3 : 333334 5 : 200000

Set
      user     system      total        real
  0.540000   0.180000   0.720000 (  0.716685)

Array
      user     system      total        real
  0.110000   0.020000   0.130000 (  0.131697)

開発中のクラス
      user     system      total        real
  0.060000   0.020000   0.080000 (  0.079187)

でもまだまだ遅い気がするので、もっと速くしたいです。今は素直なアルゴリズムなので全然改良の余地がありそうですし。
もうちょっとブラシュアップしてからgithubにでも公開しようと思います。