Я знаю, что вам нужен алгоритм псевдокода, но в Java, например, я бы использовал TreeSet, добавив все записи по ID, парам значений.
Дерево добавит их, отсортированные по значению, поэтому запрос первых 100 даст вам первые 100. Получение по идентификатору будет простым.
Я думаю, что алгоритм называется Binary-Tree или Balanced Tree, не уверен.