1

これは、(おそらく)高水準プログラミング言語に当てはまる一般的な質問です。状況は次のとおりです。

文字列の配列があるとします。たとえば、短編小説の500 000個の文字列を配列に入れることができました(入力形式のオプションがないとします)。その結果、重複するアイテムが任意の数になる可能性があります。

この文字列の配列を取得して、その配列の一意のサブセット(?)を含む別の配列を作成したいと思います(つまり、重複はありません)。このシナリオでは、入力と出力の両方が配列である必要があるため、さまざまなオプションが制限される可能性があります。

パフォーマンスに関して、これを達成するための最速の方法は何ですか?現在、線形検索を使用して単語がすでに存在するかどうかを確認していますが、線形検索であるため、特に処理する文字列の量が不当な場合は、より高速な方法があると思います。より大きな小説のように!

4

2 に答える 2

3

ハッシュセットを使用するのが最も賢明な方法かもしれません-複雑さはO(N)でなければなりません。

注:ほとんどの高級プログラミング言語には、配列から重複を削除する関数の実装が含まれています(例:PHP ) 。

于 2011-04-19T13:48:37.177 に答える
1

何億もの単語を入力する場合、有向非巡回単語グラフは、私が知っている中で最も効率的なデータ構造です。

それでも、概念的には非常に単純なデータ構造です。

于 2011-04-19T14:05:41.167 に答える