я программирую на Java. Каждые 100 мс моя программа получает новый номер.
У нее есть кеш, в котором хранится история последних n = 180
чисел.
Когда я получаю новое число x
, я хочу вычислить, сколько чисел в кэше меньше, чем x
.
Впоследствии я хочу удалить самое старое число в кеше.
Каждые 100 мс я хочу повторять процесс вычисления количества меньших чисел и удалять самое старое число.
Какой алгоритм мне следует использовать? Я хотел бы оптимизировать, чтобы сделать вычисления быстрыми, поскольку это не единственное, что рассчитывается на этих 100 мс.