jpa*_*cek 10
算法本身非常简单 - 基本上你在树中插入所有元素,然后遍历树以按顺序读取元素.
为了获得几乎已经排序的序列的更好性能,它使用以下修改:
b>2a-1
,具有O(1)
分摊的插入重新平衡时间.要利用O(1)
插入时间,您只需快速找到下一个元素所属的位置,假设序列几乎已排序(因此它与前一个元素插入的位置相差不远).这大致如下:
这样,您可以逐步遍历a^k
树的元素k
,因此,您将花费O(log(distance(current, previous))
时间为新元素找到合适的位置.考虑到摊销的O(1)
再平衡,你可以比O(n log n)
几乎排序的序列更好,同时保持O(n log n)
最坏情况.
归档时间: |
|
查看次数: |
257 次 |
最近记录: |