1次元の浮動小数点間隔の大きなセットを考えてみましょう。
[1.0, 2.5], 1.0 |---------------|2.5
[1.5, 3.6], 1.5|---------------------|3.6
.....
与えられた点を含むすべての間隔を見つけることが望まれます。たとえば、ポイント = 1.2 を指定すると、アルゴリズムは最初の間隔を返す必要があり、ポイント = 2.0 を指定すると、上記の例の最初の 2 つの間隔を返す必要があります。
私が扱っている問題では、この操作を多数の間隔で何度も繰り返す必要があります。したがって、ブルート フォース検索は望ましくなく、パフォーマンスは重要な要素です。
それについて調べた後、計算幾何学のコンテキストでインターバルスキップリストを使用してこの問題が解決されていることがわかりました。シンプルで効率的な C++ 実装が利用できるかどうか疑問に思っていました。
編集:問題についてより正確に言うと、N 個の間隔があり、M ポイントの場合、どの間隔に各ポイントが含まれているかを判断する必要があります。N と M は大きな数で、M は N よりも大きくなります。