Estrutura de dados para alocação dinâmica de memória

12

Pense no modelo de célula-sonda. Existe uma estrutura de dados que pode alocar blocos contíguos de memória de qualquer tamanho (como, por exemplo, malloc em C), e liberá-los, evitando a segmentação de memória, e executa todas as operações no pior momento determinístico de O (log n) em que n é o tamanho total da memória?

Ao evitar a segmentação de memória, quero dizer que, se o número total de células livres for F, eu deveria poder alocar um segmento contíguo de células F ou sobre células F.

Manu
fonte

Respostas:

6

mnNΩ(mlog(N/n))

Além disso, o sistema de amigos atinge esse limite e pode ser feito em tempo logarítmico.

jbapple
fonte
Obrigado pela referência. Eu permito mover os objetos alocados (caso contrário, parece bastante fácil criar um mau exemplo). O limite inferior que você mencionou ainda se aplica?
Manu
m
O(logn)
4

Este artigo, http://dl.acm.org/citation.cfm?id=3070693 , aborda exatamente a questão da alocação de memória na qual você pode mover as coisas, mas a um custo.

Martin Farach-Colton
fonte