2012-01-27 4 views

答えて

3

配列をソートする必要がないので、アルゴリズムは「各要素を見て、それが一致するかどうか」より優れたものにはなりません。グレッグHewgillの答えに加えとして

+0

Gotchaなので、並べ替えられた配列を持っていれば、何か他のものを使うことができます。 – locoboy

+1

@ cfarm54大きなソート配列では、ほとんどの場合、バイナリ検索が高速になります。 http:///xcc.net/ruby-bsearch/index.html.en –

+0

うん、これはルビーのための機能がないと仮定します。 – locoboy

6

、この方法のためのRuby 1.9.3からのソースコードである:グレッグが言ったように

VALUE 
rb_ary_includes(VALUE ary, VALUE item) 
{ 
    long i; 

    for (i=0; i<RARRAY_LEN(ary); i++) { 
     if (rb_equal(RARRAY_PTR(ary)[i], item)) { 
      return Qtrue; 
     } 
    } 
    return Qfalse; 
} 

したがって、アルゴリズムは、アレイを通るだけ線形探索です。

+3

+1ルーク、ソースを使用します。 –

関連する問題