Я бы сделал кольцевой массив нужного размера, наполнил его начальными данными, отсортировал бы его, а потом просто вставлял бы элементы и запоминал индекс минимального элемента. Это считай O(n) от твоей начальной коллекции, т.к. если ты вытягиваешь 10-100 элементов, этой сортировкой можно принебречь