空のリストから開始して項目を追加するのではなく、事前に割り当てられたリストから開始して各インデックスに項目を設定する方が大幅に高速ですか? 10k-100k のアイテムを保持するには、このリストが必要です。
再帰の各レベルで O(n) 時間を必要とするアルゴリズムを実装しようとしているのですが、O(n^2) 時間を示す結果が得られているためです。リストのサイズを変更し続ける必要があるPythonがこの速度低下を引き起こす可能性があると思いました。
同様の質問が見つかりましたが、私の質問に明確に答えたものはありませんでした。1 つの回答は、アイテムが非常に多いとガベージ コレクションが非常に遅くなる可能性があることを示していたので、GC をオンまたはオフにしてみましたが、結果に改善は見られませんでした。
問題の解決: 誰かが興味を持っている場合、スローダウンは集合をあまりにも頻繁に結合することによって引き起こされました. ここで、別の方法 (並べ替えを含む) を使用して、同じキーが 2 回表示されるかどうかを確認します。