Класс Python имеет шесть требований, перечисленных ниже. Только выделение жирным шрифтом следует рассматривать как требования.
Все, что следует ниже, оставлено здесь по историческим причинам (помогите любопытным и докажите, что исследование было проведено).
После просмотра стандартной библиотеки Python (в частности, раздела о типах данных) я все еще не нашел класса, который удовлетворяет требованиям, предъявляемым к таблице фрагментации. collections.deque
близок к тому, что требуется, но не поддерживает сортировку содержащихся в нем данных. Он обеспечивает:
Реализация неэффективного решения с использованием списков была бы тривиальной, но найти класс, который хорошо работает, было бы гораздо более желательным. В моделировании растущей памяти без верхнего предела такой класс может хранить индексы пустых (удаленных) ячеек и снижать уровни фрагментации. Модуль bisect
может помочь:
массив [-1]
для просмотреть последнее значение в массиве. Последний кандидат, который не смог полностью удовлетворить требования и появился наименее многообещающим оказался модуль heapq
. Поддерживая то, что выглядело как эффективную вставку, и гарантируя, что array [0]
был наименьшим значением, массив не всегда находится в полностью отсортированном состоянии. Больше ничто не помогло.
Кто-нибудь знает о классе или структуре данных в Python, который приближается к этим шести требованиям?