何千ものキーとスコアを持つ 4 つの並べ替えられたセットがあるとします。それらは並べ替えられたセットであるため、上位のアイテムを取得することは、対数時間の複雑さで行うことができます。
簡単な方法は、セットの結合を取得してから、最上位の項目を取得することです。ただし、そうすることは、少なくともすべてのセットのすべてのアイテムの合計に対して線形です。
私が考えることができる最良の方法はこれです:
- すべてのセットから上位 N 個のアイテムを取得する
- ランクが最も低く、そのランクのスコアが最も高いアイテムを見つけます。
- その点数をセット数で割ります。(これよりスコアが低いキーは上位 N に入ることはありません)
- それらのキーの結合を取ります。(スコアは無視)
- すべてのセットのすべてのキーのスコアを見つけます。(キーは、あるセットではスコア 1 で、別のセットでは 10000 である場合があります)
それは、一番上のリストにある可能性のあるすべてのキーを見つけて、それらのキーで結合を行うようなものです。考慮すべき項目の数を制限するには、おそらくもっと効率的な方法があります。
[編集] キーは 1 つまたは複数のセットで発生し、それらの合計スコアによって最終的なスコアが決まります。したがって、スコアが低いすべてのセットに含まれるキーは、1 つのセットのみに含まれるスコアが高いキーよりもスコアが高くなる可能性があります。