我使用一列数据来表示分散的数据块:
[(offset0, size0), (offset1, size1), (offset2, size2), ...]
这列数据根据 offset 从小到大排序的,并且块与块之间不重叠。
当我插入一个新的块 (offset3, size3) 时,希望让新块相邻的重叠块融合起来,如果不重叠的话就插入适当的位置。有什么算法方便地做到这件事吗?
需要注意的是,这个新的块,可能和两个旧的块重叠,此时需要把三个块粘起来,变成一个块。因为我们的这个列表,总是需要满意块与块之间不重叠这个条件。
--
FROM 124.72.118.*