1

Javascript でテキスト ファイル内の特定のキーに対してディスク ベースのバイナリ検索を行う方法はありますか? テキスト ファイルが大きすぎてメモリにロードできませんが、キー値で並べ替えられています。特に、Javascript で Perl のSearch::Dict機能を模倣する方法を探しています。

たとえば、ファイル foo.txt がある場合:

a 1
b 10
c 5
z 4

look(c,foo.txt)c 5バイナリ検索を実行し、ファイルを直線的にトラバースしないことにより、行 ' ' を返す必要があります。

4

2 に答える 2

1

Javascript はわかりませんが、ランダム シークを実行できる場合は、現在のブロックの中間点 (バイト単位) をシークしてバイナリ検索を実行し、改行を消費するまで前進できます。キーが改行に対してあることを「知っています」。

ただし、逆行する必要がある場合もあるため、バックステップにコストがかからないように、ファイルのバッファリングに関する知識を持ってシークを行うことができます。

ASCII ファイルを扱っていない場合、これは少し面倒かもしれません。

于 2009-02-13T01:26:40.447 に答える