Подумайте о модели клеточного зонда. Существует ли структура данных, которая может выделять непрерывные порции памяти любой длины (например, malloc в C) и освобождать их, избегая при этом сегментации памяти, и выполняет каждую операцию в наихудший случай детерминированного времени O (log n), где n равно общий размер памяти?
Избегая сегментации памяти, я имею в виду, что если общее количество свободных ячеек равно F, то я должен быть в состоянии выделить непрерывный сегмент F-ячеек или около F-ячеек.
В этом документе http://dl.acm.org/citation.cfm?id=3070693 точно рассматривается вопрос распределения памяти, куда вы можете перемещать вещи, но за дополнительную плату.
источник