ソートを前提に推測して探索してみた
二分探索 - malibu-bulldogの日記
に書いたとおり、二分探索を使ってデータを探索していたんだけど…でも大規模データが対象となるとそれでも遅い!
規模は「探索の対象」となるデータの数が1000万個ぐらい。
ってことで、さらに高速化にチャレンジした。
データの特性としては一意のIDが連番の場合が多い。
で、それを利用して最初は普通に二分探索して、2度目からは前回の探索結果から対象となるIDがどれぐらい離れているかを考えることに。
推測してあたりをつけるってことです。
で、そのためにソートしました。
結果として、相当速くなりました。
ちょっと感激です。