私のプログラムにかかる時間: O(m + n + p) まず最初に、それがあなたのプログラムにかかる時間だとはまったく信じていません。
クエリを解析して、ドキュメント内の単語を検索するよう求められます。これは複雑な相互参照の問題です。複数の単語に含まれる文字が、ドキュメント内にランダムに配置された同じシーケンスと正確な文字シーケンスで一致する必要があるためです。ほとんどの学生はこれのハッシュを作成し、最初の単語を取得してドキュメントをスキャンしてその単語の出現箇所を探し、次と次と次で同じことを行うことで、N 乗プロセスを作成します。ドキュメントの内容と単語を相互参照する効果的な手段を開発する必要があります。そうしないと、N^2 プロセスが作成されます。オフハンドでは、クエリで単語の辞書を作成し、ドキュメントを単語に解析し、検索する単語の辞書と照合します。それはmLognになります
m = number of words the document
n = number of words in the dictionary you create in an nLogn process.
あなたは私が書いた記事で言及されました。これは、同様の、しかしはるかに複雑な単語一致の問題を解決するためです。
http://www.codeproject.com/Tips/882998/Performance-Solving-WonderWord-パズル
あなたの最初の回答者は、ブレークを使用せずに文字を見つける必要はなかったと仮定しながら正しかったが、彼の O 記法は間違っていると信じている。