100,000 の int 値をより効率的に追加する方法。
今日、面接の質問を整理していて、以前にも聞かれたこの質問を見つけました。
考えても無駄です
皆さんの議論を歓迎します!
昨日、fonxianの回答に基づいて試してみましたが、違いはありませんでした。私の実装に何か問題があるのでしょうか?
スレッドを使用するアルゴリズムは、スレッドに追加のオーバーヘッドが必要なため、速度が遅くなる可能性があります。
マップを使用している人は無視してください。マップのバージョンは何度も変更されていますが、依然として期待した効果が得られません。マップは非常に高価なようです。
分離計算と併用計算に違いはなく、分離計算のメリットが全く分かりません~~~~
2017-5-10
リマインダーをくれた thomastao に感謝します。方法を再整理しました。手がかりがあることがわかります。私のレベルは限られているのでまとめません。ちょっと見てみてください!
これを解決するには、MapReduce のアイデアまたはマルチスレッドを使用します。 10w の整数を n 個のグループ (たとえば、10 グループ) にマッピングする場合、各グループは 1w 個の数値の合計を計算し、10 個の合計を減算して加算するだけで済みます。
一般的には、まず目でパターンがあるかどうかを確認し、パターンがある場合は式を使用して計算します。 。 。