我们如何实现分配&的数据结构?使用以下约束跟踪内存
假设你有1 KB的内存单位。 您需要分配2kB - 64 KB内存
例如
A-1
B-1
C-4
D-2
0 1 2 3 4 5 6 7 8 9 10
x A x B C C C D D x
如果我们在释放时可用的最小地址分配内存(如上面的x所示)内存,我们将会出现碎片。所以在上面的例子中,即使3个单元是空闲的,我们也无法分配3个连续单元的内存。
答案 0 :(得分:0)
搜索“好友系统”或“好友内存分配”。这可能是你会发现的最佳解决方案。虽然,它不是纯粹的O(1),它会受到一些内部碎片的影响,外部碎片化也会发生......
使用扩充树可以完全避免内部碎片,但操作需要O(log N)时间。你仍然有外部碎片。