Когда список отсортирован, вы можете использовать двоичный поиск для определения конечных точек вашего интервала. Наихудшим случаем будет O (log n).