11
Phobosには私だけか、バイナリ検索機能はありませんか?私は自分のコンパレータ関数で検索したいプリソートされた配列を持っていますが、std.algorithmsやstd.containersには何も見つかりません。D 2.0のバイナリ検索(Phobos)?
ありがとうございます! std.range
から
Phobosには私だけか、バイナリ検索機能はありませんか?私は自分のコンパレータ関数で検索したいプリソートされた配列を持っていますが、std.algorithmsやstd.containersには何も見つかりません。D 2.0のバイナリ検索(Phobos)?
ありがとうございます! std.range
から
使用SortedRange
:
Cribbed http://www.digitalmars.com/d/2.0/phobos/std_range.html#SortedRangeから:
auto a = [ 1, 2, 3, 42, 52, 64 ];
auto r = assumeSorted(a);
assert(r.canFind(3));
assert(!r.canFind(32));
ああ、あなたが期待していなかった... "assumeSorted" を使用する必要があり、そのおかげで! :) – Mehrdad
'find()'(したがって 'canFind()')は、実際にはかなりスマートです。バイナリ検索が機能するためには、データをソートする必要があります。したがって、 'assumeSorted()'はそれをそうするようにします。そして 'find()'と 'canFind()'はバイナリ検索がその後、最良の検索、それは彼らが何をしているかです。 –
バイナリ検索をしようとしているのであれば、それは直感的ではありません。 – Trass3r