問題タブ [boyer-moore]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
387 参照

c++ - ボイヤー・ムーア多数決アルゴリズムの 2 回目のパスの要件

私はBoyer-Moore Algorithm(ここから)を研究していますが、簡単な質問がありました.2番目のパスの必要性は何ですか(基本的に、その要素の周波数を見つけることで「確認」します)。最初のパス自体は、見つかった要素が多数決であることを保証しませんか? いくつかの例を検討しましたが、1 回のパスで十分だと感じました。私の気持ちに反論するために、いくつかの例を教えていただけますか?

コード (必要な場合) は次のとおりです。

編集: 私が正しく理解している場合、アルゴリズムは、多数要素の頻度が実際に よりも大きい場合にのみ適用されます(vector size())/2。では、2 番目のパスは本当に必要なのでしょうか? コードを作成するときはいつでも、簡単なサニティ チェック (入力ベクトルが空かどうかのチェックなど) を行いますが、この場合、アルゴリズムの一部として「サニティ チェック」を行うのはなぜでしょうか? それともそれ以上の何かがありますか?

0 投票する
0 に答える
157 参照

java - ボイヤームーアアルゴリズム:Javaでより効率的にする

仕事仲間によると、ボイヤームーアアルゴリズムの次の実装はそれほど効率的ではありません。質の高い結果が得られないために何が間違っているのかわかりません。

私はそれをテストしましたが、非常にうまく機能します。私がする必要があるのは、効率的に仕事をすることだけです. これについて何か助けを得ることができますか?

これは .java のコード実装です