私はリストの最大値を(maximum
を使って)見つけることに取り組んでいます。この関数はリスト全体を処理して目標に達する必要があり、明らかに遅くなりますリストが大きくなるにつれて。残念なことに、私のリストは巨大(数億)です。Haskell :: Lists as Slower関数が大きくなっていく
これが唯一の方法ですか?またはこれを行うより速い方法がありますか?私はハスケルが高速だが、この時点では(遅くなっている)、maximum
を見つけるための他のオプションがあるのだろうかと思っています。
数字をすべて確認せずに無関係な数字のリストの最大値をどのように見つけることができますか?次の2つのオプションしかありません。(a)数字に何らかの相関があります。または(b)おそらくアレイを使うことができます。なぜなら、これは通常は横断する方が速いからです。しかし、(b)の場合でも、* O(n)*時間はかかるでしょう。 –
どのようにリストを生成していますか? – MathematicalOrchid
最大値は可換分であるため、適切な並列ノードがあれば、ジョブを配布することができます。しかし、これはあなたの巨大なデータセットがすでにチャンク化されていると仮定しています。それがちょうどあなたが遅れて生成しているリストであれば、それを単に消費することはまだより速いです。 https://stackoverflow.com/questions/4028210/how-do-i-write-a-parallel-reduction-using-strategies-in-haskellには手がかりがあるかもしれません。 –