2016-05-01 9 views
0

私はちょうどinbuiltのオープン、書き込み、上書きファイルを使用して簡単なテキストエディタを作った。私はpythonをtkinterと共にインストールした。しかし、テキストエディタを拡張して検索などの新しい機能を追加し、効率的に置き換えたいと思っています。 私はUnixがファイルにデータを格納するために使用するデータ構造と、検索の時間の複雑さを計算することを知る必要があります。Unixシステムにファイルを保存するために使用されるデータ構造

答えて

2

テキストファイルはバイトストリームとして格納されます。使用されるエンコーディング(ASCII、UTF-8、Unicodeなど)に応じて、1文字あたり1バイト以上の固定値、またはUTF-8やその他のエンコーディングの場合はバイト数が異なる場合があります文字ごとに。

最善の検索アルゴリズムは、検索する文字列の長さをn、検索する文字列の長さをmとすると、O(n + m)の最悪の複雑さです。良い例はBoyer-Moore search algorithmです。作業中のファイルがメモリに収まらない場合は、バッファリングなどを心配する必要がありますが、これは追加の複雑さですが、検索の効率には影響しません。入力バッファの境界を横切る文字列を見逃さないように、入力をバッファリングすることは独創的でなければなりません。