Algorithm 段树范围最小查询

Algorithm 段树范围最小查询,algorithm,data-structures,tree,segment-tree,rmq,Algorithm,Data Structures,Tree,Segment Tree,Rmq,我正在努力理解分段树。这是一个演示如何在范围内找到最小值的示例。然而,据说“除了最后一级之外,构建的段树的所有级别都将被完全填充。而且,树将是一个完整的二叉树,因为我们总是在每个级别将段分成两半。”。我不明白添加是如何执行的?例如,如果我们再添加两个元素6和10,它们应该放在哪里?进入正确的子树?如果是,将有5个不太平衡,一半不相等。我是否应该重新排序树并再次进行计算?此段树的实现不支持添加操作,因此无法添加新元素 你能举个例子说明什么实现支持添加操作吗?你可以使用平衡二叉搜索树来存储段树的节点

我正在努力理解分段树。这是一个演示如何在范围内找到最小值的示例。然而,据说“除了最后一级之外,构建的段树的所有级别都将被完全填充。而且,树将是一个完整的二叉树,因为我们总是在每个级别将段分成两半。”。我不明白添加是如何执行的?例如,如果我们再添加两个元素6和10,它们应该放在哪里?进入正确的子树?如果是,将有5个不太平衡,一半不相等。我是否应该重新排序树并再次进行计算?

此段树的实现不支持添加操作,因此无法添加新元素

你能举个例子说明什么实现支持添加操作吗?你可以使用平衡二叉搜索树来存储段树的节点,以使添加新元素成为可能。但在平衡时,你必须重新计算距离,这不是很有效。只需要对旋转的节点或从根到新叶的路径上的节点重新计算。只有
O(logn)
这样的节点。